Mega Code Archive

 
Categories / C# Tutorial / Reflection
 

Map Interface Methods To Class Methods

using System; using System.Reflection; public interface IFaceOne {   void MethodA(); } public interface IFaceTwo {   void MethodB(); } public class MyClass: IFaceOne, IFaceTwo {   public enum MyNestedEnum{}      public int myIntField;   public string myStringField;   public void myMethod(int p1, string p2)   {   }   public int MyProp   {     get { return myIntField; }     set { myIntField = value; }   }   void IFaceOne.MethodA(){}   void IFaceTwo.MethodB(){} } public class MainClass {   public static void Main(string[] args)   {     MyClass f = new MyClass();     Type t = f.GetType();          Type[] iFaces = t.GetInterfaces();     for(int i = 0; i < iFaces.Length; i ++)     {       Console.WriteLine("Info on Interface named: {0}", iFaces[i]);       MethodInfo[] classMethodNames = t.GetInterfaceMap(iFaces[i]).TargetMethods;       MethodInfo[] interfaceMethodNames = t.GetInterfaceMap(iFaces[i]).InterfaceMethods;       for(int j = 0; j < classMethodNames.Length; j++)       {         Console.WriteLine("Interface method: {0}",  interfaceMethodNames[j].Name);         Console.WriteLine("is implemented by class method: {0}", classMethodNames[j].Name);       }       Console.WriteLine();     }   } } Info on Interface named: IFaceOne Interface method: MethodA is implemented by class method: IFaceOne.MethodA Info on Interface named: IFaceTwo Interface method: MethodB is implemented by class method: IFaceTwo.MethodB