WCF - Повторное использование типов из другой справочной службы

1

У нас есть два сервера webservice, написанные в java:

  • CoreService
  • ExtensionService.

Ссылки ExtensionService Типы CoreService и повторного использования.

аналогично, у нас есть две клиентские библиотеки:

  • CoreClient с ссылкой на службу CoreService
  • ExtensionClient с ссылкой на службу ExtensionService

Я бы хотел, чтобы ExtensionClient повторно использовал сгенерированные типы из CoreClient. Если ExtensionClient генерирует свои собственные "основные" классы, я не могу повторно использовать свою бизнес-логику от CoreClient, потому что CoreClient работает с разными классами как ExtensionClient.

Я могу написать файл данных CoreClient вручную. Как заставить ExtensionClient повторно использовать классы из CoreClient?

  • 0
    Чтобы уточнить, вы пишете клиент WCF для вызова 2 Java-сервисов?
  • 0
    @Tom: почти. мой WCF ExtensionClient будет вызывать только Java ExtensionService. CoreClient может быть назван CoreLibrary. Мне нужно разделить основную библиотеку между несколькими решениями. Контракты и бизнес-логика в CoreLibrary будут одинаковыми, но ExtensionService будет меняться в каждом решении.
Теги:
wcf

1 ответ

0

Используйте svcutil.exe с флагом /r, как описано здесь, для создания прокси-сервера клиента для ExtensionService, передающего в dll CoreService в качестве аргумента.

Однако вам необходимо знать, что svcutil.exe использует DataContractSerializer для генерации кода, и, к сожалению, у этого есть довольно строгий набор правил, когда дело доходит до разбора ваших контрактов на обслуживание.

Поэтому, если вы не обслуживаете XSD, придерживайтесь этого набора правил. Svcutil.exe переключится на использование XmlSerializer, который не поддерживает флаг /r (или повторное использование). Следовательно, вы не сможете повторно использовать типы.

  • 0
    Несовместимость DataContractSerializer была причиной того, что я не смог повторно использовать типы. Я попытаюсь настроить CustomTool «Генератор прокси WCF», чтобы пропустить генерацию предопределенного набора классов прокси. Так как они генерируются в ссылочной сборке, это может работать.
  • 0
    @Liero другой вариант будет вручную редактировать сгенерированные классы - это будет стоить, если вы не ожидаете, что контракты на обслуживание изменятся так часто /
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню