Разоблачение одного и того же класса дважды с использованием WCF - PullRequest
3 голосов
/ 22 октября 2009

У меня есть 2 службы WCF, которые выставляют один и тот же объект. Допустим, первая служба (SerA) предоставляет класс (classA), а вторая служба (SerB), которая добавляет заполненный classA, также предоставляет этот класс (так как этот класс включен в параметры). Теперь, когда я получаю classA из SerA, он объединяется с пространством имен SerA.classA, и когда я добавляю его с помощью второго сервиса, ему требуется такой класс, как SerB.ClassA. Есть ли способ указать, что оба класса одинаковы. Я попытался изменить пространство имен в reference.vb, и это работает, но это будет реальной проблемой при обновлении ссылки на службу. Кто-нибудь может мне помочь в этом? Спасибо

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Вы можете поместить свое определение ClassA (и другие контракты данных) в библиотеку классов и сослаться на него из обеих служб. Таким образом, оба должны использовать одно и то же определение DataContracts.ClassA.

Это всегда хорошая идея, чтобы разделить ваш сервисный сервис на отдельные проекты:

  • сервисы (сервисы, операции, данные и, возможно, контракты сообщений) в одну библиотеку классов («Контракты») - возможно, даже в несколько библиотек
  • реализация службы (й) в библиотеке классов
  • хост (ы) службы - при необходимости (без использования IIS) - в отдельную сборку (консольное приложение)

Таким образом, вы можете повторно использовать определенные части ваших сервисных контрактов и, возможно, реализации.

1017 * MARC *

0 голосов
/ 31 марта 2011

НЕТ ответа на это, а?

Проблема в том, что ссылка на службу генерирует собственное определение класса.

например, у меня есть класс " car " в общей библиотеке и service1 wcf, который я использую с ClientProject , но когда я добавляю ссылка на service1, вы получаете

ClientProject.Service1_ref.Car

создано в Reference.cs

Сейчас мне нужно это исправить, изменив reference.cs, чтобы каждый раз использовать общие классы, действительно не очень хорошо.

редактирование: У этого парня есть ответ, не используйте «добавить ссылку на сервис», это легко сделать в противном случае: http://devx.com/codemag/Article/39837/1763/page/5 - Монстры X 0 секунд назад edit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...