Мой первый вопрос, поэтому надеюсь, что он подходит:
Совместно используемая сборка интерфейса - У меня есть «общая» сборка с интерфейсом, назовем ее IDocRepository
.Он помечен [ServiceContract]
и имеется несколько [OperationContract]
помеченных методов.
Сборки реализации WCF - у меня есть два сервисных проекта WCF, каждый из которых ссылается на общую сборку, каждый реализующий этот интерфейскак служба WCF.
Потребительская сборка - Наконец, у меня есть «клиентский» проект, также ссылающийся на общую сборку, со ссылкой на каждую из двух служб WCF.
Однако ссылки на службы, сгенерированные в потребительской сборке, основаны на автоматически сгенерированной версии интерфейса:
public partial class ExampleClient : System.ServiceModel.ClientBase<SomeNamespace.ExampleSvcRef.IDocRepository>, SomeNamespace.ExampleSvcRef.IDocRepository {
Что я ожидал
Я бы надеялся, чтовместо этого обе ссылки будут автоматически наследовать определенный мной интерфейс, на который ссылается также потребитель / клиентская сборка.Вроде как повторное использование классов, которые оно предоставляет для параметров и типов возврата, но для интерфейса службы.
Почему
Так что я могу создать экземпляр любой службыссылаться на прокси и привести его к моему типу интерфейса.
Так что я могу каждый раз модифицировать сгенерированный код вручную, но должен быть лучший способ ...?
(редактировать: у меня естьПараметры «Повторное использование типов в ссылочных сборках» и «Повторное использование типов во всех ссылочных сборках», выбранные для обеих ссылок на услуги)