Использование EnumMemberAttribute и автоматическое преобразование строк
У меня есть следующий код
<code>[DataContract] public enum StatusType { [EnumMember(Value = "A")] All, [EnumMember(Value = "I")] InProcess, [EnumMember(Value = "C")] Complete, } </code>
Я хотел бы сделать следующее:
<code> var s = "C"; StatusType status = SerializerHelper.ToEnum<StatusType>(s); //status is now StatusType.Complete string newString = SerializerHelper.ToEnumString<StatusType>(status); //newString is now "C" </code>
Я выполнил вторую часть с использованием DataContractSerializer (см. Код ниже), но это кажется большой работой.
Я что-то упускаю из виду? Идеи? Благодарю.
<code> public static string ToEnumString<T>(T type) { string s; using (var ms = new MemoryStream()) { var ser = new DataContractSerializer(typeof(T)); ser.WriteObject(ms, type); ms.Position = 0; var sr = new StreamReader(ms); s = sr.ReadToEnd(); } using (var xml = new XmlTextReader(s, XmlNodeType.Element, null)) { xml.MoveToContent(); xml.Read(); return xml.Value; } } </code>