原来的程序是在Window XP操作系统下,.net3.5框架下,vs2008开发的,在xp系统下运行正常, 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);-------这行报:调用的目标发生了异常 请问怎么解决呢? |
|
把源程序移到win7系统下,编译是没有问题的,只是运行生成的exe后,在这里报错
|
|
100分 |
你是反射执行的函数
函数里出了问题,你又没加异常捕获,当然就直接给你报反射错误了 检查execute的代码吧 |
XP下运行正常,不代表WIN7下运行也必须正常
因为不知道你execute函数里到底干了什么,比如是否调用了API,而XP下的API和WIN7下是不一样的 或者你调用了什么COM组件,DLL,而在XP下这些东西不需要注册,而WIN7下需要注册 好歹你先调试出真正出错的地方,再找原因,不要靠瞎猜 |
|
还真是,你说的对啊
用到了这个:AxInterop.ShockwaveFlashObjects.dll 这个有影响么? |
|
在win7上安装个vs调试一下不就知道了
|
|
AxInterop.ShockwaveFlashObjects.dll 你都用到了这个还用返射做啥。
直接引用就可以了呀。还有你要看这个组件在WIn7下的API是否有变化了。这东西很难说能跟XP是一样的。 |