给出了以下类结构:
public class A{
[MyAttribute1]
public string field;
}
public class B : A{
[MyAttribute2]
[MyAttribute3]
public string field;
}
现在通过反射,我试图找出该字段是否具有属性“MyAttribute2”。但我得到以下输出:
foreach (FieldInfo field in TypeOfB.GetFields(BindingFlags.Public | BindingFlags.Instance))
{
Console.Write(field.DeclaringType);
Console.Write(" : ");
Console.Write(field.GetCustomAttributes(false).Length);
Console.Write("\n");
}
//Output:
A.field : 1
B.field : 2
预期的输出是:
B.field : 3
现在的问题。谁能解释为什么我两次获得“场”而不是合并?最重要的是,谁能告诉我我做得对吗?