У нас есть два сервера webservice, написанные в java:
Ссылки ExtensionService Типы CoreService и повторного использования.
аналогично, у нас есть две клиентские библиотеки:
Я бы хотел, чтобы ExtensionClient повторно использовал сгенерированные типы из CoreClient. Если ExtensionClient генерирует свои собственные "основные" классы, я не могу повторно использовать свою бизнес-логику от CoreClient, потому что CoreClient работает с разными классами как ExtensionClient.
Я могу написать файл данных CoreClient вручную. Как заставить ExtensionClient повторно использовать классы из CoreClient?
Используйте svcutil.exe с флагом /r, как описано здесь, для создания прокси-сервера клиента для ExtensionService, передающего в dll CoreService в качестве аргумента.
Однако вам необходимо знать, что svcutil.exe использует DataContractSerializer
для генерации кода, и, к сожалению, у этого есть довольно строгий набор правил, когда дело доходит до разбора ваших контрактов на обслуживание.
Поэтому, если вы не обслуживаете XSD, придерживайтесь этого набора правил. Svcutil.exe переключится на использование XmlSerializer
, который не поддерживает флаг /r (или повторное использование). Следовательно, вы не сможете повторно использовать типы.