如何从DoStuff()方法获取Stuff属性的属性?这可能吗?
public class Bar
{
public enum FooZ
{
Hello,
GoodBye
}
[Display("Hello"]
public FooZ Stuff { get; set; }
public Bar() {
Stuff = FooZ.GoodBye;
}
}
void Main()
{
var x = new Bar();
DoStuff(x.Stuff);
}
void DoStuff(Enum z) {
// How do I get the DisaplyAttribute from here?
}
答案 0 :(得分:2)
你做不到。参数z
不记得它来自哪里;值不记得它们是如何构造的。请记住,在这种情况下,属性是用属性修饰的(意味着它嵌入在包含类型的元数据中),而不是其getter返回的值。您必须反映Bar
类型本身,就像Itay的回答一样。
答案 1 :(得分:1)
Type t = typeof(Bar);
PropertyInfo pi = t.GetProperty("Stuff");
Attribute[] att = pi.GetCustomAttributes(typeof(DisplayAttribute), true);