дано является следующей структурой класса:Отражения переопределенного поля возвращает поле несколько раз
public class A{
[MyAttribute1]
public string field;
}
public class B : A{
[MyAttribute2]
[MyAttribute3]
public string field;
}
По Reflection теперь я пытаюсь выяснить, если поле имеет атрибут «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
Теперь вопрос. Может ли кто-нибудь объяснить, почему я получаю «поле» два раза и не комбинирую? И, прежде всего, кто может сказать мне, как я поступаю правильно?
Но перезапись работает. Только моя проблема с отражением существует – Floyd
После редактирования .. ОК я понимаю – Floyd