Я пытаюсь обдумать некоторые свойства класса и установить их программно, но похоже, что один из моих фильтров PropertyInfo не работает:
//Get all public or private non-static properties declared in this class (no inherited properties) - that have a getter and setter.
PropertyInfo[] props = this.GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty );
Я получаю сообщение об ошибке
pi.SetValue(this, valueFromData, null);
Поскольку у свойства есть только метод get{}
, метод set{}
отсутствует.
Мой вопрос: почему это свойство не было отфильтровано из реквизита? Я думал, что это было целью BindingFlags.SetProperty.
Свойство не фильтруется:
public String CollTypeDescription
{
get { return _CollTypeDescription; }
}
Обратите внимание, что я хочу отфильтровать свойства, которые не будут работать раньше времени, потому что я перечисляю их все сразу. Я не хочу использовать pi.GetSetMethod()
после факта, чтобы определить, могу ли я использовать сеттер.