В ядре .NET для генерации клиентских классов из WSDL мы используем VS 'Add Connected Services' или svcutil.exe.
В .NET Framework мы будем использовать wsdl.exe для этого.
Новый подход генерирует методы, подобные этому (плохие - заголовки являются параметрами):
createAsync(SessionHeader SessionHeader, AssignmentRuleHeader AssignmentRuleHeader, MruHeader MruHeader, AllowFieldTruncationHeader AllowFieldTruncationHeader, DisableFeedTrackingHeader DisableFeedTrackingHeader, StreamingEnabledHeader StreamingEnabledHeader, AllOrNoneHeader AllOrNoneHeader, DuplicateRuleHeader DuplicateRuleHeader, LocaleOptions LocaleOptions, DebuggingHeader DebuggingHeader, PackageVersion[] PackageVersionHeader, EmailHeader EmailHeader, sObject[] sObjects)
-или-
перегрузка с классом createRequest, в котором все вышеуказанные заголовки определены как свойства (далеко от идеала, поскольку нет наследования запросов).
«Старый» wsdl.exe сгенерирует:
create(sObject[] sObjects)
... со всеми заголовками, являющимися свойствами клиентского класса (хорошо).
Есть ли способ настроить svcutil.exe для лучшей работы?
Это ошибка (или функция WCF)?
Есть ли хороший подход?чтобы справиться с этим (WSDL огромен и генерирует клиентский класс длиной 300K +)?