温风徐徐来

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
// 通过反射创建类库中的实例
                try
                {

                    // 通过反射,获取模块
                    Assembly assembly = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + "****.dll"); //****.dll,含有界面的dll

                    // 获取dll类库中的类型
                    Type[] types = assembly.GetTypes();

                    foreach (var t in types)
                    {
                        // 通过反射创建类库中的实例
                        try
                        {
                            var obj = assembly.CreateInstance(t.ToString());

                            if (obj is XtraUserControl)
                            {
                                XtraUserControl uc = (XtraUserControl)obj;
                                // 是否是主页面
                                if (uc.Name == "mainform")
                                {

                                    // 添加视图
                                    LoadUserCon(uc);

                                    // 获取类型
                                    Type type = obj.GetType();

                                    // 获取指定名称的属性
                                    System.Reflection.PropertyInfo propertyInfo = type.GetProperty("value");

                                    // 给对应属性赋值
                                    propertyInfo.SetValue(obj, “这里传value的值”, null);
                                }
                            }
                        }
                        catch (MissingMethodException) //忽略该错误【没有找到匹配的构造函数】【有的接口类,扩展类没有构造】
                        {
                            continue;
                        }
                    }

 

posted on 2018-01-29 14:56  温风徐徐来  阅读(688)  评论(0编辑  收藏  举报