Hallo alle,
Wir haben einen Legacy-Code in unserem Produkt, wo wir eine Aufzählung haben, die bei 1 beginnt:
public enum AccountStateEnum
{
Live = 1,
Trial = 2,
Internal = 3,
Development = 4,
Archived = 5,
Disabled = 6
}
Wir möchten, dass Swagger die Aufzählung mit Zeichenfolgen generiert, also aktivieren wir die SwaggerConfig-Einstellung „DescribeAllEnumsAsStrings“.
Dies erzeugt die Aufzählung wie folgt:
/// <summary>
/// Gets or Sets AccountState
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum AccountStateEnum
{
/// <summary>
/// Enum Live for "Live"
/// </summary>
[EnumMember(Value = "Live")]
Live,
/// <summary>
/// Enum Trial for "Trial"
/// </summary>
[EnumMember(Value = "Trial")]
Trial,
/// <summary>
/// Enum Internal for "Internal"
/// </summary>
[EnumMember(Value = "Internal")]
Internal,
/// <summary>
/// Enum Development for "Development"
/// </summary>
[EnumMember(Value = "Development")]
Development,
/// <summary>
/// Enum Archived for "Archived"
/// </summary>
[EnumMember(Value = "Archived")]
Archived,
/// <summary>
/// Enum Disabled for "Disabled"
/// </summary>
[EnumMember(Value = "Disabled")]
Disabled
}
Was bei uns leider nicht funktioniert - da 'Live' gleich 1 sein muss.
Wenn wir die Einstellung aus SwaggerConfig entfernen, werden die Enum-Werte wie folgt gerendert:
/// <summary>
/// Gets or Sets AccountState
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum AccountStateEnum
{
/// <summary>
/// Enum NUMBER_1 for 1
/// </summary>
[EnumMember(Value = "1")]
NUMBER_1 = 1,
/// <summary>
/// Enum NUMBER_2 for 2
/// </summary>
[EnumMember(Value = "2")]
NUMBER_2 = 2,
/// <summary>
/// Enum NUMBER_3 for 3
/// </summary>
[EnumMember(Value = "3")]
NUMBER_3 = 3,
/// <summary>
/// Enum NUMBER_4 for 4
/// </summary>
[EnumMember(Value = "4")]
NUMBER_4 = 4,
/// <summary>
/// Enum NUMBER_5 for 5
/// </summary>
[EnumMember(Value = "5")]
NUMBER_5 = 5,
/// <summary>
/// Enum NUMBER_6 for 6
/// </summary>
[EnumMember(Value = "6")]
NUMBER_6 = 6
}
Die Nummern sind richtig zugeordnet, die Namen sind jedoch nicht enthalten!
Gibt es eine Möglichkeit, das Beste aus beiden Welten zu bekommen?
2.3.0
Nichts Besonderes an der von uns verwendeten Befehlszeile!
Ich habe das gleiche Problem.
Das ist meine Definition
ProofOfOwnership:
type: integer
enum:
- 1
- 2
- 4
x-enumNames:
- Manufacturer's Certificate of Origin
- Title issued in another State/Jurisdiction
- Minnesota Title
Das bekomme ich
/// <summary>
/// Defines ProofOfOwnership
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum ProofOfOwnership
{
/// <summary>
/// Enum _1 for "1"
/// </summary>
[EnumMember(Value = "1")]
_1 = 1,
/// <summary>
/// Enum _2 for "2"
/// </summary>
[EnumMember(Value = "2")]
_2 = 2,
/// <summary>
/// Enum _4 for "4"
/// </summary>
[EnumMember(Value = "4")]
_4 = 3
}
Das erwarte ich
/// <summary>
/// Defines ProofOfOwnership
/// </summary>
public enum ProofOfOwnership
{
/// <summary>
/// Enum _1 for "1"
/// </summary>
[EnumMember(Value = "1")]
ManufacturersCertificateOfOrigin = 1,
/// <summary>
/// Enum _2 for "2"
/// </summary>
[EnumMember(Value = "2")]
TitleIssuedInAnotherStateJurisdiction = 2,
/// <summary>
/// Enum _4 for "4"
/// </summary>
[EnumMember(Value = "4")]
MinnesotaTitle = 4
}
Dasselbe Problem für mich. Ich verwende die HttpStatusCode-Aufzählung.
Gleiches Problem von mir, ist es möglich, es bald zu beheben?
Hilfreichster Kommentar
Ich habe das gleiche Problem.
Das ist meine Definition
Das bekomme ich
Das erwarte ich