[ServiceContract]
public interface IService1
{
[OperationContract]
Request FindRequestById(int Id);
}
public class Service1 : IService1
{
public Request FindRequestById(int Id)
{
return RequestHelper.FindById(Id);
}
}
internal class RequestHelper
{
private RequestHelper()
{
}
public static Request FindById(int IdRequest)
{
using (DbManager db = DBManagerHelper.GetNewManager())
{
return db.SetCommand("select IdRequest, Code from table where IdRequest = @IdRequest",
db.Parameter("@IdRequest", IdRequest))
.ExecuteObject<Request>();
}
}
}
[DataContract]
public abstract class Request
{
[DataMember]
public abstract int IdRequest { get; set; }
[DataMember]
public abstract int Code { get; set; }
}
на него ссылается клиент:
class Program
{
static void Main(string[] args)
{
ServiceReference1.Request getRequest;
Service1Client client = new Service1Client();
getRequest = client.FindRequestById(1111);
Console.WriteLine(getRequest.Code);
client.Close();
}
при вызове client.FindRequestById падает ошибка
"Базовое соединение закрыто: Соединение было неожиданно закрыто"
System.ServiceModel.CommunicationException was unhandled
Message="Базовое соединение закрыто: Соединение было неожиданно закрыто."
Source="mscorlib"
StackTrace:
Server stack trace:
в System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
в System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
в System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
в System.ServiceModel.Channels.ClientReliableChannelBinder`1.RequestClientReliableChannelBinder`1.OnRequest(TRequestChannel channel, Message message, TimeSpan timeout, MaskingMode maskingMode)
.....
Здравствуйте, karoziya, Вы писали:
K>Не ужели ни кто не делал сервисы на BL, очень не хочется использовать Entity.
Без абстрактных классов всё отлично работает. Кстати, зачем они нужны? С абстрактным в данной конфигурации у меня не получилось запустить и без BLToolkit.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, karoziya, Вы писали:
K>>Не ужели ни кто не делал сервисы на BL, очень не хочется использовать Entity.
IT>Без абстрактных классов всё отлично работает. Кстати, зачем они нужны? С абстрактным в данной конфигурации у меня не получилось запустить и без BLToolkit.
Видимо не до конца разобрался, я почему то думал что BLToolkit только с абстрактными классами работать может. Убрал абстрактность все работает. Большое спасибо.
Здравствуйте, karoziya, Вы писали:
K>Видимо не до конца разобрался, я почему то думал что BLToolkit только с абстрактными классами работать может. Убрал абстрактность все работает. Большое спасибо.
Абстрактные классы удобны в VS2005 (уменьшают кол-во писанины) и нужны для Editable*, в остальных случаях лучше обходиться обычными классами...