Ich habe eine Enum kommentierte mit EnumMember
JSON.NET Serialisierung ähnlich dem folgenden zu erleichtern:
[DataContract]
[JsonConverter(typeof(StringEnumConverter))]
public enum Status
{
[EnumMember(Value = NOT_ADMITTED)]
NotAdmitted,
[EnumMember(Value = ADMITTED)]
Admitted
}
Nun, unabhängig von der JSON.NET Serialisierung mag ich Mich mag mochte Instanzen der Enumeration in eine Zeichenfolge konvertieren , während durch die bleibenden EnumMember
Anmerkungen in dem Datenvertrag, zB:
aStatusInstance.ToString() == NOT_ADMITTED
.
Irgendwelche Vorschläge? Vielen Dank!
Update: Meine Lösung
Ich änderte den Code in der akzeptierte Antwort eine Erweiterungsmethode zu erstellen, die EnumMember Wert abzurufen:
public static string GetEnumMemberValue(this Enum enumValue)
{
var type = enumValue.GetType();
var info = type.GetField(enumValue.ToString());
var da = (EnumMemberAttribute[])(info.GetCustomAttributes(typeof(EnumMemberAttribute), false));
if (da.Length > 0)
return da[0].Value;
else
return string.Empty;
}