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>

Respuestas a la pregunta(2)

Su respuesta a la pregunta