У меня есть пара проблем с правильным генерированием кода из поставляемого набора WSDL и XSD вне моего контроля.Чтобы получить правильный прокси-класс, который работает с пользовательским FaultException, у меня есть следующие параметры svcutil:
svcutil /t:code /out:InvoiceService_v1.cs /n:*,Test.Invoice_v1 /UseSerializerForFaults *.wsdl *.xsd /config:InvoiceService_v1.config
Если я добавлю ссылку на службу с помощью Visual Studio, то сгенерированный прокси неправильно интерпретирует пользовательское определение ошибки.Необходимые настройки недоступны в пользовательском инструменте Visual Studio.
Однако я вижу файл Reference.svcmap, созданный инструментом Добавить ссылку на службу.Внутри есть несколько вариантов клиента:
<ClientOptions>
<GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
<EnableDataBinding>true</EnableDataBinding>
<ExcludedTypes />
<ImportXmlTypes>false</ImportXmlTypes>
<GenerateInternalTypes>false</GenerateInternalTypes>
<GenerateMessageContracts>false</GenerateMessageContracts>
<NamespaceMappings />
<CollectionMappings />
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />
</ClientOptions>
Можно ли настроить эти параметры, чтобы я мог использовать графический интерфейс вместо использования svcutil каждый раз?
Svcutil не загружает и автоматически не анализирует удаленные XSD, и третья сторона также разделила WSDL на отдельную привязку и интерфейс.Для подготовки каждого WSDL и XSD требуется немало ручной работы, прежде чем я смогу запустить svcutil.
Графический интерфейс упрощает процесс, но я не могу понять, как заставить его использовать альтернативные переключатели.
Я уже пытался добавить следующий вариант ClientOption, но он не работал,Без ошибок, но и без генерации классов:
<UseSerializerForFaults>false</UseSerializerForFaults>
Любые идеи приветствуются!