2

重複の可能性:
Description 属性から Enum を取得

説明属性を使用する Enum があります。オブジェクトに設定できるようにしたい->渡された文字列に基づいてプロパティ値。文字列が列挙値の説明のいずれかと一致する場合、その値を選択する必要があります。長い for ループを使用せずにこれを行うことは可能ですか?

public enum Rule
{
     ....
     [Description("New Seed")]
     Rule2 = 2,
     ....
}

私が望んでいるのは次のようなものです

var object = new oject{ rule = Rule.Where(r=> r.description == rulestring)}
4

1 に答える 1

2
        Rule f;
        var type = typeof(Rule);
        foreach (var field in type.GetFields())
        {
            var attribute = Attribute.GetCustomAttribute(field,
                typeof(DescriptionAttribute)) as DescriptionAttribute;
            if (attribute != null)
            {
                if (attribute.Description == "description"){
                    f = (Rule)field.GetValue(null);
                break;}
            }
            else
            {
                if (field.Name == "description"){
                    f = (Rule)field.GetValue(null);
                break;}
            }
        } 

ref: Description 属性から Enum を取得

于 2012-06-08T20:26:45.607 に答える