有一个需求是:我在一个A窗口点击按钮后启动另一个程序B窗口来测试,在A窗口使用反射技术来获取B窗口的信息,代码如下: Assembly asm = Assembly.LoadFrom(applicationPath);
Type typeUT = asm.GetType(typeName);
object obj = Activator.CreateInstance(typeUT);
MethodInfo mi = typeUT.GetMethod("Show",allFlags);
mi.Invoke(obj,null);
return obj;
这段代码能够获取A窗口的类型,但是就是不能找到A的窗口方法Show()来显示该窗口出现,程序执行到
typeUT.GetMethod这段代码就直接跳过了,也就是有问题,但是我这样写确实没问题啊,我要得到A窗口的Show()方法,参数第一写方法名,第二个参数allFlags=private static BindingFlags allFlags = BindingFlags.Public | BindingFlags.NonPublic |BindingFlags.Static | BindingFlags.Instance; 请问下各位高手,为什么这段代码得不到A窗口方法啊?
Type typeUT = asm.GetType(typeName);
object obj = Activator.CreateInstance(typeUT);
MethodInfo mi = typeUT.GetMethod("Show",allFlags);
mi.Invoke(obj,null);
return obj;
这段代码能够获取A窗口的类型,但是就是不能找到A的窗口方法Show()来显示该窗口出现,程序执行到
typeUT.GetMethod这段代码就直接跳过了,也就是有问题,但是我这样写确实没问题啊,我要得到A窗口的Show()方法,参数第一写方法名,第二个参数allFlags=private static BindingFlags allFlags = BindingFlags.Public | BindingFlags.NonPublic |BindingFlags.Static | BindingFlags.Instance; 请问下各位高手,为什么这段代码得不到A窗口方法啊?
解决方案 »
- 定时关机的程序,错误,
- 关于异步socket的一点小疑问
- 后置类不执行问题`~~~~
- winform 自动升级,求高手指点
- 一个简单的C#参数的格式问题
- 请问datagridview里面已经定义好的地段怎么和datatable里面的对应字段绑定?
- C#怎样用反射调用方法
- 我在一直winform上放了一个printPreviewControl 我在form中加了一个按扭,当点击按扭时可以改变预览图象的百分比显示,比如点一下,让它
- 关于textBox输入的一点问题,请各为帮忙,急,在线等,谢谢
- 关于数组传递参数!
- 请问,DataGridView为什么老是报这种异常?
- 关于TCP端口复用,打洞,NAT穿越的问题请教!
GetMethod有其他重载,调用方式比这个简单。
如果Show()是一个public方法的话
你直接typeUT.GetMethod("Show");就可以得到了。