Map Interface Methods To Class Methods : Interface : Reflection C# Examples


C# Examples » Reflection » Interface »

 

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();
        }
    }
}
    
   
  
   



Output

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


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Reflection
» Interface