Когда я использую Visual Studio для создания клиента WCF («Добавить ссылку на службу») и нажимаю «Дополнительно...», флажок в котором говорится, что «Всегда генерировать контракты сообщений» правильно контролирует, генерируются ли объекты контракта сообщений.
Однако, когда я использую класс ServiceContractGenerator для программного создания клиента WCF, он продолжает генерировать контракты сообщений. Я попробовал установить для параметра ServiceContractGenerator значение ServiceContractGenerationOptions.None, но результат тот же.
Вот код, который я использую:
Вот код, который я использую:
р>
Код: Выделить всё
MetadataSet metadataSet = new MetadataSet();
metadataSet.MetadataSections.Add(MetadataSection.CreateFromServiceDescription(System.Web.Services.Description.ServiceDescription.Read(wsdlStream)));
WsdlImporter importer = new WsdlImporter(metadataSet);
if (serviceDescription != null)
importer.WsdlDocuments.Add(serviceDescription);
foreach (XmlSchema nextSchema in schemas)
importer.XmlSchemas.Add(nextSchema);
ServiceContractGenerator generator = new ServiceContractGenerator();
generator.Options = ServiceContractGenerationOptions.None;
foreach (ContractDescription nextContract in importer.ImportAllContracts())
generator.GenerateServiceContractType(nextContract);
if (generator.Errors.Count != 0)
throw new Exception("Service assembly compile error: \r\n - " + string.Join("\r\n - ", generator.Errors.Select(e => e.Message)));
// Use generator.TargetCompileUnit to generate the code...
Подробнее здесь: https://stackoverflow.com/questions/273 ... quest-resp