C#中的反射Reflection动态加载引用

方法一:右键工程添加新建,添加一个类库;
完成编译后,将其中的.dll文件添加的需要的项目中,这里直接手动添加:
之后可以直接使用类库中的类了,使用快捷键Alt+shift+F10添加命名空间;
二.使用反射命名空间为using System.Reflection;动态添加;
1.将编译好的类库文件中的.dll文件复制到工作目录中,
  Assembly asse=Assembly.Load("Test");//加载.dll文件
            Module[]modules= asse.GetModules();//获得所有的.dll
            foreach (Module module in modules)
            {
                Console.WriteLine(module.Name);  //打印出.dll文件名称
            }


 

 Type[] types = asse.GetTypes(); //获得.dll引用中的类         

   foreach (Type  type in types)//遍历其中所定义的类       

     {               

         Console.WriteLine(type);//打印类名      

      }          

        Type typeHelper=asse.GetType("Test.sqlServerHelp");  //通过类名获取其中的一个类返回一个type类型的变量           

        object obHelp= Activator.CreateInstance(typeHelper);  //等于创建对象

       sqlServerHelp sql = new sqlServerHelp();            //要使用该类中的方法,可以通过接口实现,方法是将object类型的变量obHelp强制转化为该类所继承的接口;          

  //在使用接口调用该类中的方法;           

Console.ReadKey();

 Type[] types = Assembly.GetAssembly(typeof (HandlerBase)).GetTypes();  //获得所有的类
            //HandlerBase是抽象类,继承自他的类必须实现他的方法
            foreach (var type in types)       //遍历其中所有的类
            {
                if (type.FullName.EndsWith("Handler"))  //类名是否是以“Handler”结尾
                {
                    Activator.CreateInstance(type);   //创建实例,相当于类的定义new一个对象
                }
            }


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值