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 pai

Estranho 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?

questionAnswers(3)

yourAnswerToTheQuestion