#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 или более экземпляров.