GetProperties () per restituire tutte le proprietà per una gerarchia di ereditarietà dell’interfaccia

Supponendo la seguente ipotetica gerarchia di ereditarietà:

public interface IA { int ID { get; set; } } public interface IB : IA { string Name { get; set; } } 

Usare la riflessione e effettuare la seguente chiamata:

 typeof(IB).GetProperties(BindingFlags.Public | BindingFlags.Instance) 

produrrà solo le proprietà dell’interfaccia IB , che è ” Name “.

Se dovessimo fare un test simile sul seguente codice,

 public abstract class A { public int ID { get; set; } } public class B : A { public string Name { get; set; } } 

il tipo di chiamata typeof(B).GetProperties(BindingFlags.Public | BindingFlags.Instance) restituirà una matrice di oggetti PropertyInfo per ” ID ” e ” Name “.

C’è un modo semplice per trovare tutte le proprietà nella gerarchia di ereditarietà per le interfacce come nel primo esempio?