4
public enum Animal
{
    [Description("King of jungle")]
    Lion= 1,

    [Description("Tallest there")]
    Giraffe = 2
}

を持っているとFieldInfoします。次の 2 つの方法があります。

//static one on 'Attribute' class
Attribute attribute = Attribute.GetCustomAttribute(field, 
                                                   typeof(DescriptionAttribute), 
                                                   false);

それはいいです。

しかし、以下のものは?[]ではなく返されます。Attribute

//instance one on 'MemberInfo` class
var attributes = field.GetCustomAttributes(typeof(DescriptionAttribute), false);

この質問は、MS の設計上の選択に関するものではありません。field.GetCustomAttributes私の質問は、特定の属性タイプに対して複数のアイテムを返すことについて心配する必要がありますか? それはどのような場合に起こりますか?

[Description("King of jungle")]
[Description("I'm a lion")]
Lion= 1

私が推測することは決して不可能です。いくつかのリフレクション ヘルパー関数を記述するときに、これを処理する必要があると思います。

4

1 に答える 1