Jak zrobić odpowiednie odbicie metod interfejsu podstawowego
Mam 2 interfejsy i 2 klasy, które badam za pomocą Reflection:
IParentIChild - wywodzi się z IParentRodzicDziecko - pochodzi od rodzicaDziwną rzeczą dla mnie jest fakt, że kiedy przeglądam refleksję na temat typu IChilda, nie znajduję metody IParent.
Ten sam kod zastosowany do typu Child działa zgodnie z oczekiwaniami - refleksja pokazuje metodę rodzica.
<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>
Proszę wyjaśnić takie zachowanie?
Czy jest jakieś obejście problemu odzwierciedlające metody interfejsu podstawowego z typu interfejsu pochodnego?