2009-10-22 2 views
3

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

ответ

2

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

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

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

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

MARC

+0

Это не работает Марк. У меня уже есть классы в другой библиотеке классов. У меня есть только контракты в том же проекте, что и служба wcf, и они просто выставляют классы из библиотеки классов. Но это все равно дает мне такую ​​же ошибку! – Farax

+1

Не на 100% уверены, что вы говорите: это DataContracts в общей библиотеке классов или в каждом из проектов обслуживания? Сам DataContracts должен находиться в общей общей библиотеке, иначе это никогда не будет работать. –

0

НЕТ ответа на этот вопрос не так ли?

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

например, у меня есть класс «автомобиль» в общей библиотеке, и service1 службы WCF, который я использую из ClientProject но когда я добавить ссылку на Service1, вы получите

ClientProject.Service1_ref.Car

созданного остроумия hin Reference.cs

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

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

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