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