Usando EnumMemberAttribute y haciendo conversiones automáticas de cadenas
Tengo el siguiente código
<code>[DataContract] public enum StatusType { [EnumMember(Value = "A")] All, [EnumMember(Value = "I")] InProcess, [EnumMember(Value = "C")] Complete, } </code>
Me gustaría hacer lo siguiente:
<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>
He hecho la segunda parte usando DataContractSerializer (ver código a continuación), pero parece mucho trabajo.
¿Me estoy perdiendo algo obvio? Ideas? Gracias.
<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>