首页 > 代码库 > 反射初识

反射初识

使用反射可以调用其他程序集里面的方法,私有方法也可以调出,但是一般都使用的接口+反射的形式去调用类似以下例子:

 

接口:

    public interface SayMethod    {        void sayHello();    }

中国人说话的方法实现这个接口:

 public class Say : SayMethod    {        public void sayHello()        {            Console.WriteLine("你好");        }    }

方法和类库分别都是单独的类库,生成后得到DLL文件在引用的时候反射的方法所在类不必引用实现接口类 的DLL,而是引用了说话方法这个接口的DLL,相当于让别的类帮你做事,而你只是去调用就可以,

下面看一下反射的方法实现:

             string str = @"F:\接口\KoreanSay.dll";            //获取外部程序集地址            Assembly asm = Assembly.LoadFile(str);            //得到这个外部程序集的方法或者属性成为一个类            Type[] types = asm.GetExportedTypes();            Type type = types[0];            //Type type = asm.GetExportedTypes()[0];            //实例化一下这个类            object obj = Activator.CreateInstance(type);            //调用方法            SayMethod say = obj as SayMethod;            say.sayHello();            Console.ReadKey();        

其中,type也可以获得某个类的方法,属性,字段名,具体方法请百度一下,一般情况下个人认为反射多用于C/S程序,并且多用于制作第三方插/控件,有不足的地方还希望大神指点

反射初识