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

摘要:
//通过反射创建类库中的实例try{//通过反射,获取模块Assemblyassembly=Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory+"****.dll");//****.dll,含有界面的dll//获取dll类库中的类型Type[]types=assembly.GetTypes();foreach(vartintypes){/
//通过反射创建类库中的实例
                try{

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

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

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

                            if (obj isXtraUserControl)
                            {
                                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;
                        }
                    }

免责声明:文章转载自《C# 使用反射获取界面并传参》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【DLL相关】实现函数的DLL封装,并在另一个项目中调用Cursor中的中的movetofrist和movetonext下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Fiddler断点应用

对于不需要修改的报文,我们可以手动完成发送,fiddler会把拦截的网页发送到服务器或者客户端,需要修改的报文,可以在Fiddler修改完成后,再选择转发。另外,我们也可以使用Fiddler的断点功能模拟网络中断场景,验证服务器超时,客户端的处理情况。Afterresponses:服务器响应之后,在fiddler将响应传回给客户端之前。...

css设置文字多余部分显示省略号

如果只显示一行,则可以使用以下方法:  overflow:hidden;  text-overflow:ellipsis;  white-space:nowrap;如果需要显示多行,在需要设置的元素style中添加以下代码:  word-break:break-all;  text-overflow:ellipsis;  display:-webkit-bo...

Qt使用镜像源快速安装与更新

如果我们选择在线安装模式,那就更麻烦了,因为下载速度一般不慢。事实上,在中国,Qt图片来源很多,但很少有人使用。原因是Qt图像源做得不好。如果我们导入它,它将自动链接到官方图像源。因为它已经从官方来源同步,没有更改,所以我们无法逐个添加补丁,这太麻烦了。好吧,让我停止胡说八道。让我告诉你如何使用国产Qt图像源。...

Java switch 枚举

Switch可以使用int.short、char、Enum和String其中,Enum是1.5之后的新特性,String是java8的新特性。所以正确的写作应该如下。...

一起学习Avalonia(十二)

可以使用数据模板自定义和显示数据模板模板。文档中介绍了Avalonia的基本数据模板。PublicstringFirstName{get;set;}publicstringLastName{get;set;}扩展使用文档最后介绍了扩展使用,包括2个模型。Student和Teacher。在MainWindowViewModel中创建属性Content。此属性是...

批处理bat脚本自动配置java的jdk环境变量

前言每次更换计算机或重新安装系统时,都需要重新配置java系统路径。但我不想每次都检查配置方法,所以我编写了一个脚本来自动配置。脚本内容@echooff@echo步骤1:输入要设置的JAVA_HOME路径:set/pinput=“请输入JAVA_HOME路径:”@echo步骤2:设置JAVA_ HOME路径setxJAVA_HOME“%input%”/M@e...