Включить методы расширения в сгенерированный файл прокси
У нас есть две сборки, DataContracts и Core. В настоящее время мы используем svcutil для генерации наших DataContracts, ссылаясь на Core. У нас есть пара методов расширения для различных типов перечислений, которые были бы полезны на стороне клиента.
Есть ли способ заставить svcutil включить эти методы расширения в наш сгенерированный файл прокси?
2 ответа
Любые методы, которые вы хотите раскрыть, должны быть включены в операционный контракт. Я не знаю другого способа предоставления метаданных в WSDL, не узнавая больше о том, как работает WSDLImporter. Независимо от этого - метаданные - это только контракты - вы не можете делиться операциями / поведением в своих метаданных. Единственный способ поделиться поведением методов (вашими расширениями) - включить их в общий контракт / базовую сборку или представить их в качестве рабочих контрактов.
Классы, сгенерированные svcutil, являются частичными. Поэтому функциональность этих классов может быть разделена на несколько файлов. Один файл - это файл, сгенерированный svcutil с функциональностью, предоставляемой сервисом. Другие файлы могут содержать функциональность, которую вы хотите добавить, которая не является частью контракта на данные.
Дополнительная информация о частичных классах Частичные классы и методы (Руководство по программированию в C#) на MSDN