首页 新闻 会员 周边 捐助

C# 反射传参数给非静态方法 总感觉2-3行有点重复

0
悬赏园豆:10 [已解决问题] 解决于 2017-07-16 21:58
            Assembly assembly = Assembly.LoadFrom("assembly_name.dll");

            Type type = assembly.GetType("assembly_name.assembly_class");//调用类型

            object instance = assembly.CreateInstance("assembly_name.assembly_class");

            MethodInfo method = type.GetMethod("Show_Str");//调用方法

            Object[] objPar = new Object[] { "OK" };

            object test = method.Invoke(instance, objPar);//Invoke调用方法

            this.Text = test.ToString();

有没有好的方法,谢谢!

TabZ的主页 TabZ | 初学一级 | 园豆:36
提问于:2017-07-15 17:35
< >
分享
最佳答案
0

每一行代码都是必须的。

没有type,就拿不到method。

没有instance,就不能invoke。

顶多 var type =instance.GetType();换一换

收获园豆:7
czd890 | 专家六级 |园豆:14488 | 2017-07-15 22:20

好的,了解, 谢谢!

TabZ | 园豆:36 (初学一级) | 2017-07-16 21:57
其他回答(1)
0

如果说你知道你的 instance 的准确类型,直接invoke 后强制转化,这样可以省掉很多代码,可是会牺牲灵活性

收获园豆:3
Bluto | 园豆:317 (菜鸟二级) | 2017-07-16 21:38

看来只能如此了,谢谢回复!

支持(0) 反对(0) TabZ | 园豆:36 (初学一级) | 2017-07-16 21:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册