В проекте. NET Core я хочу импортировать файл WSDL с помощью диалогового окна Добавить подключенную службу> поставщик WCF.
Файл WSDL содержит несколько типов перечислений, поэтому перечисления C# будут быть сгенерирован. Например:
<xs:simpleType name="RevenueRecognitionRuleName">
<xs:restriction base="xs:string">
<xs:enumeration value="Recognize upon invoicing" />
<xs:enumeration value="Recognize daily over time" />
</xs:restriction>
</xs:simpleType>
Компилируется в:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.2")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://x.com/")]
public enum RevenueRecognitionRuleName
{
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("Recognize upon invoicing")]
Recognizeuponinvoicing,
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("Recognize daily over time")]
Recognizedailyovertime,
}
Приятно, что генератор удалил все пробелы, чтобы имена перечислений были в допустимом формате. Но они не такие красивые. Поскольку я не могу изменить способ работы службы, строковые значения Camel Cased невозможны. Я могу изменить только генератор или сгенерированный код.
Могу ли я как-то настроить генератор на использование формата перечисления CamelCased? Диалоговое окно не предлагает такой опции где-нибудь еще?
Есть ли какой-нибудь дополнительный атрибут XML, который я мог бы добавить в файл WSDL, который генератор может обнаружить и использовать? Лучше было бы изменить WSDL, чем сгенерированный код.