method.Invoke调用的目标发生了异常

.Net技术 码拜 10年前 (2015-03-25) 2181次浏览 0个评论
 

原来的程序是在Window XP操作系统下,.net3.5框架下,vs2008开发的,在xp系统下运行正常,
现在要把程序放到win7下运行,结果报错了,运行到这里

  MethodInfo method = currentObject.GetType().GetMethod("setContext");
  method.Invoke(currentObject, new object[] { context });
   method = currentObject.GetType().GetMethod("setName");
  method.Invoke(currentObject, new object[] { actionObject.ActionId });
  method = currentObject.GetType().GetMethod("execute");
  method.Invoke(currentObject, null);-------这行报:调用的目标发生了异常

请问怎么解决呢?

method.Invoke调用的目标发生了异常
把源程序移到win7系统下,编译是没有问题的,只是运行生成的exe后,在这里报错
method.Invoke调用的目标发生了异常
100分
你是反射执行的函数
函数里出了问题,你又没加异常捕获,当然就直接给你报反射错误了

检查execute的代码吧

method.Invoke调用的目标发生了异常
XP下运行正常,不代表WIN7下运行也必须正常
因为不知道你execute函数里到底干了什么,比如是否调用了API,而XP下的API和WIN7下是不一样的
或者你调用了什么COM组件,DLL,而在XP下这些东西不需要注册,而WIN7下需要注册

好歹你先调试出真正出错的地方,再找原因,不要靠瞎猜

method.Invoke调用的目标发生了异常
还真是,你说的对啊
用到了这个:AxInterop.ShockwaveFlashObjects.dll
这个有影响么?
method.Invoke调用的目标发生了异常
在win7上安装个vs调试一下不就知道了
method.Invoke调用的目标发生了异常
AxInterop.ShockwaveFlashObjects.dll 你都用到了这个还用返射做啥。
直接引用就可以了呀。还有你要看这个组件在WIn7下的API是否有变化了。这东西很难说能跟XP是一样的。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明method.Invoke调用的目标发生了异常
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!