Como fazer o reflexo adequado dos métodos de interface base
Eu tenho 2 interfaces e 2 classes que eu pesquiso via Reflection:
IParentIChild - deriva de IParentPaiCriança - deriva do paiEstranho para mim é o fato de que quando eu olho através da reflexão sobre o tipo IChild eu não encontro o método IParent.
O mesmo código aplicado ao tipo filho funciona conforme o esperado - a reflexão mostra o método pai.
<code>interface IParent { void ParentMethod(); } interface IChild : IParent { void ChildMethod(); } class Parent { public void ParentMethod(){} } class Child : Parent { public void ChildMethod(){} } void Main() { //investigate derived interface Type t = typeof(IChild); var info = t.GetMethod("ChildMethod");//ok Console.WriteLine(info); info = t.GetMethod("ParentMethod");//returns null! Console.WriteLine(info); //investigate derived class t = typeof(Child); info = t.GetMethod("ChildMethod");//ok Console.WriteLine(info); info = t.GetMethod("ParentMethod");//ok Console.WriteLine(info); } </code>
Por favor, explique esse comportamento?
Existe alguma solução para refletir os métodos da interface base do tipo da interface derivada?