反射动态加载Dll

 这个可以搞dll的动态加载.做到只程式自动更新.

        public static UserControl CreateInstace()
        {                              //WindowsFormsControlLibrary1是文件名,不加后缀
            Assembly a = Assembly.Load("WindowsFormsControlLibrary1");//加载
            Type type = a.GetType("WindowsFormsControlLibrary1.UserControl1");//获取类型
                                     //WindowsFormsControlLibrary1.UserControl1 合名空
            object o = Activator.CreateInstance(type);//创建对象
            UserControl user = o as UserControl;    //强转
            return user;
        }


               

          UserControl user = SimpleFactory.CreateInstace(); 
          OpenChildForm(user, panel1);                        //调用

        private void OpenChildForm(UserControl childForm, Panel panel)
        {
            childForm.Dock = DockStyle.Fill;
            panel.Controls.Add(childForm);
            panel.Tag = childForm;
            childForm.BringToFront();
            childForm.Show();
        }

下面是方法调用

                //无参数
                Assembly a = Assembly.Load("WindowsFormsControlLibrary1");//加载
                //WindowsFormsControlLibrary1是文件名,不加后缀
                Type type = a.GetType("WindowsFormsControlLibrary1.UserControl1");//获取类型
                //WindowsFormsControlLibrary1.UserControl1 合名空间:WindowsFormsControlLibrary1,类名:UserControl1
                object o = Activator.CreateInstance(type);//创建对象
                MethodInfo inFo = type.GetMethod("ShowTest", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.IgnoreCase);
                bool bool1 = (bool)inFo.Invoke(o, null);//调用方法并返回值
Assembly a = Assembly.Load("WindowsFormsControlLibrary1");//加载
                                                          //WindowsFormsControlLibrary1是文件名,不加后缀
Type type = a.GetType("WindowsFormsControlLibrary1.UserControl1");//获取类型
                                                                  //WindowsFormsControlLibrary1.UserControl1 合名空间:WindowsFormsControlLibrary1,类名:UserControl1
object o = Activator.CreateInstance(type);//创建对象
MethodInfo inFo = type.GetMethod("ShowTest1", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.IgnoreCase);
bool cc = (bool)inFo.Invoke(o, new object[] { "中国中国一定强." });

属性、字段

                //使用的是。netFramwork 4.5
                Assembly a = Assembly.Load("WindowsFormsControlLibrary1");//加载                                                       
                Type type = a.GetType("WindowsFormsControlLibrary1.UserControl1");//获取类型                                                             
                object o = Activator.CreateInstance(type);//创建对象
                //GetProperties获取所有属性
                PropertyInfo[] tt = type.GetProperties();
                PropertyInfo inFo = tt.FirstOrDefault(oo => oo.Name.Equals("Title"));
                inFo.SetValue(o, "你看,你看");

                this.Text = (string)inFo.GetValue(o);
                //type.GetFields 获取所有字段一样操作 

反射写SQL语句

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值