Supondo a seguinte hierarquia de herança hipotética:
public interface IA
{
int ID { get; set; }
}
public interface IB : IA
{
string Name { get; set; }
}
Usando reflexão e fazendo a seguinte chamada:
typeof(IB).GetProperties(BindingFlags.Public | BindingFlags.Instance)
só produzirá as propriedades da interface IB, que é " Name".
Se fizéssemos um teste semelhante no código a seguir,
public abstract class A
{
public int ID { get; set; }
}
public class B : A
{
public string Name { get; set; }
}
a chamada typeof(B).GetProperties(BindingFlags.Public | BindingFlags.Instance)retornará uma matriz de PropertyInfoobjetos para " ID" e " Name".
Existe uma maneira fácil de encontrar todas as propriedades na hierarquia de herança para interfaces como no primeiro exemplo?