Изменение преобразования именования перечислений при генерации кода C# из файла WSDL - PullRequest
0 голосов
/ 04 августа 2020

В проекте. 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, чем сгенерированный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...