0

私が持っているとしましょう:

[Description("Class Description")]
public class A { }

public class B { 
    public A PropertyA { get;set;}
}

PropertyA を振り返ると、クラス A の属性が表示されます。なぜでしょうか?

var entityProperties = TypeDescriptor.GetProperties(typeof(B)).Cast<PropertyDescriptor>();
foreach (var a in entityProperties.First().Attributes)
    Console.Out.Write(a.GetType().ToString());

プリントアウト:

System.ComponentModel.DescriptionAttribute

プロパティを反映すると、DescriptionAttribute がリストに表示されるのはなぜですか? クラス属性を除外して、プロパティにアタッチされたものだけを取得するにはどうすればよいですか?

4

1 に答える 1

0

変化する:

foreach (var a in entityProperties.First().Attributes)

に:

foreach (var a in entityProperties.First().GetCustomAttributes(true))

メソッドのドキュメントGetCustomAttributes()はこちら: http://msdn.microsoft.com/en-us/library/dzdb2077(v=vs.100).aspx

于 2013-05-24T16:07:06.557 に答える