title: How to do proper Reflection of base Interface methods
body: <p>I have 2 interfaces and 2 classes that I investigate via Reflection:</p>
  
  <ul>
  <li>IParent</li>
  <li>IChild - derives from IParent</li>
  <li>Parent </li>
  <li>Child - derives from Parent</li>
  </ul>
  
  <p>Strange thing for me is the fact that when I look through reflection on IChild type I don't find IParent method. </p>
  
  <p>Same code applied to Child type works as expected - reflection shows Parent method.</p>
  
  <pre><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></pre>
  
  <p>Please explain such behaviour? </p>
  
  <p>Is there any workaround to reflect base interface's methods from the derived interface's type?</p>