Предполагая следующую гипотетическую иерархию наследования:
public interface IA
{
int ID { get; set; }
}
public interface IB : IA
{
string Name { get; set; }
}
Используя рефлексию и делая следующий вызов:
typeof(IB).GetProperties(BindingFlags.Public | BindingFlags.Instance)
выдаст только свойства интерфейса IB
, то есть "Name
".
Если мы проведем аналогичный тест для следующего кода,
public abstract class A
{
public int ID { get; set; }
}
public class B : A
{
public string Name { get; set; }
}
вызов typeof(B).GetProperties(BindingFlags.Public | BindingFlags.Instance)
вернет массив объектов PropertyInfo
для "ID
" и "Name
".
Существует ли простой способ найти все свойства в иерархии наследования для интерфейсов, как в первом примере?