C# 使用反射获取界面并传参

// 通过反射创建类库中的实例
                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;
                        }
                    }
原文地址:https://www.cnblogs.com/boyxzhen/p/8377319.html