20

私は列挙型を持っています:

public enum Operation {
    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("01")]
    Item01,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("02")]
    Item02,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("03")]
    Item03,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("04")]
    Item04,
}

XmlEnumAttribute 値を取得するにはどうすればよいですか?

私はそれを試みています:

var res = Operation.Item1;
var result = (res.GetType().GetField("Item01").GetCustomAttributes(typeof(XmlEnumAttribute), true)[0] as XmlEnumAttribute).Name;

より良い方法が存在する可能性がありますか?

4

3 に答える 3

8

属性値を取得するには、Reflection を使用する必要があります。

var value = Operation.Item02;

var attributeValue = ((XmlEnumAttribute)typeof(Operation)
                        .GetMember(value.ToString())[0]
                        .GetCustomAttributes(typeof(XmlEnumAttribute), false)[0])
                        .Name;
于 2013-09-11T09:59:01.403 に答える