WCF — Могу ли я сгенерировать один прокси из двух отдельных интерфейсов

#wcf #wcf-proxy

#wcf #wcf-proxy

Вопрос:

У меня есть два отдельных интерфейса и две отдельные конечные точки (файлы .svc), определенные в одном проекте WCF. Эти интерфейсы совместно используют общие объекты в проекте. Есть ли способ создать единый прокси, который объединяет оба интерфейса и все объекты, поскольку они являются общими?

Спасибо!

Комментарии:

1.марк, во время поиска здесь я в конечном итоге нашел другой поток (я потерял URL), в котором предлагалось использовать следующий синтаксис svc: svcutil.exe /ct:System.Коллекции.Generic.List`1 /ser: Auto /tcv: Version35 /n: *,MyNamespace localhost/MyService/Services/Service1.svc?wsdl localhost/MyService/Services /Service2.svc?wsdl localhost /MyService / Services /Service3.svc?wsdl Сделав это, я смог создать один прокси, который имел три интерфейса и три клиентских класса, но все объекты, которые были распространены, в реализации появлялись только один раз.

Ответ №1:

Вы можете реализовать несколько интерфейсов в одном сервисе:

 public class MyService : IContract1, IContract2
{

}
  

Тогда у вас может быть прокси для этой службы, которая использует оба контракта.

Ответ №2:

Во время поиска здесь я в конечном итоге нашел другой поток (я потерял URL), в котором предлагалось использовать следующий синтаксис svc:

svcutil.exe /ct:System.Коллекции.Generic.List`1 /ser: Auto / tcv:Version35 /n:*,MyNamespace http://localhost/MyService/Services/Service1.svc?wsdl http://localhost/MyService/Services /Service2.svc?wsdl http://localhost/MyService/Services/Service3.svc?wsdl

Сделав это, я смог создать один прокси, который имел три интерфейса и три клиентских класса, но все объекты, которые были общими в реализации, появлялись только один раз.

Комментарии:

1. Действительно, очень интересно! Я понятия не имел (но, честно говоря, и никогда не пробовал), что вы могли бы это сделать! Спасибо, что поделились! (хотелось бы, чтобы вы снова нашли этот URL-адрес — разве он не должен быть где-нибудь в истории вашего браузера??)

2. К сожалению, это было на другом компьютере. В основном в ответе опубликованный дал ссылку на msdn.microsoft.com/en-us/library/aa347733.aspx Если вы посмотрите на синтаксис, параметр <url> отмечен знаком *, указывающим на 0 или более экземпляров.