Мы используем WCF для связи между клиентом и серверным приложением. Клиентское приложение имеет множество функций, требующих связи с сервером, и мы решили реализовать это в нескольких классах (разделение ответственности).Служба WCF возвращает другую услугу (сервисная фабрика?)
На данный момент мы создаем новые конечные точки WCF и контракты на обслуживание для каждого объекта - выставление счетов , Учет, управление контентом и т. Д. Это вызывает большую конфигурацию конечных точек как на клиенте, так и на сервере (с потенциальными проблемами неправильной конфигурации при переходе на тестовые и производственные платформы).
Я хотел бы знать, могу ли я определить одну конечную точку WCF, которая может предоставлять несколько реализаций контактов службы. Наши конфигурационные файлы затем будут содержать одну конечную точку (на заводе-изготовителе), и я могу запросить различные услуги, указав интерфейс интересующей меня услуги.
например.
using (IServiceClientFactory serviceClientFactory = new RealProxyServiceClientFactory())
{
// This is normal WCF proxy object creation.
IServiceFactory serviceFactory = serviceClientFactory.CreateInstance<IServiceFactory>("");
// This is what we would like to do
IInvoiceService invoiceService = serviceFactory.getService(typeof(IInvoiceService));
invoiceService.executeOperation(data);
}
Ключом является одной конфигурации конечных точек в паре клиент/сервер, вместо конфигурации конечных точек на обслуживание контактов я хотел бы сделать доступными.
Возможно ли это?
Благодарим за ответ.Сериализация службы не является решением, методы обслуживания должны обрабатываться на сервере. Параметры должны быть Serializable, но сам метод должен выполняться на сервере. Я нашел документ об ServiceContracts с SessionMode, который я сейчас тестирую. – Thies
Я никогда не предлагал сериализацию службы. Сегментация Xml делает работу WCF. Он отвечает за перенос ваших объектов и перевод их в Xml и наоборот. Весь смысл моего ответа заключается в том, чтобы объяснить вам, что упаковка ваших запросов и ответов на обслуживание может быть решением вашей проблемы. –