2013-04-19 2 views
1

Я видел этот вопрос раньше (here для одного), однако решение состоит в том, чтобы не повторно использовать ссылочные сборки. Мне нужно повторно использовать включенные сборки, потому что несколько служб ссылаются на одни и те же общие объекты. Если я не повторно использую сборки, я получаю ошибки пространства имен, потому что один и тот же объект ссылается через различные пространства имен. (т. е. Service1.Object, Service2.Object)Добавление ссылки на службу для службы WCF создает пустую ссылку.cs

Вкратце, мне нужен сгенерированный класс Client, который расширяет клиентскую базу для веб-службы, но я не могу отменить повторное использование ссылочных ассемблеров, поскольку мне нужны общие объекты с тем же пространством имен. Какие-либо предложения?

+0

Возможный дубликат [Иногда добавление ссылки службы WCF генерирует пустую ссылку.cs] (http://stackoverflow.com/questions/1408509/sometimes-adding-a-wcf-service-reference-generates-an-empty -reference-cs) – Veverke

ответ

1

Вы можете создать свой прокси-клиент с SvcUtil.exe и использовать/г переключателя указать узлы, которые вы хотите ссылаться вместо переизлученного в автоматически генерируемого клиента прокси-коде.

  • ProjACommon
  • ProjBSvc
    • Ссылки ProjACommon
  • ProjCClient
    • Ссылки ProjACommon
    • Вы хотите клиента, который ссылается на типы ProjA и/или кода, а не их быть автоматически -генерировано в новое пространство имен в C

После создания ProjBSvc EXEC следующее, который выводит .wsdl & .xsd

svcutil.exe ProjBSvc.dll 

второй потреблять WSDL-& XSD для создания прокси/клиента:

svcutil.exe *.wsdl *.xsd /o:<ProjCClientPath>/Client.cs /r:ProjACommon.dll 

ProjCClient ссылки Client.cs, сгенерированные с предыдущих шагов

Постройте и просмотрите с помощью браузера объектов, и вы увидите типы в C, ссылающиеся на типы в A вместо новых типов с тем же именем в пространстве имен C. Вы можете найти /tcv и /n а также другие двигатели в соответствии с вашими потребностями.

Это article, которые могут вам помочь. Он также ссылается на Microsoft documentation for svcutil

+0

Можете ли вы ссылаться на хороший пример или ссылку, где я могу получить более подробную информацию об этом? – drunkenRabbit

0

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

+0

То же самое. Можете ли вы ссылаться на хорошую ссылку на использование? – drunkenRabbit

Смежные вопросы