MissingMethodException
一个很恶心的问题啊。
纠结了我很久。
我这里做一个插件类型的东西。
比如, 一个窗体叫MainForm,
然后一个接口叫IPlugIn。
然后IPlugIn在载入的时候调用IPlugIn.OnLoad方法。
我写了一个IPlugIn, 他在OnLoad的时候, 会自动在MainForm里面添加一个菜单。
于是我就在MainForm类上加了一个AddMenuItem的方法。
然后呢, MainForm我可以通过一些办法拿到, 但是拿到的时候是Form类型, 而不是MainForm类型。
所以要as一下, 然后调用MainForm上的方法。
大概就是这么个结构。
好, 问题来了:
visual studio不知道抽什么疯, 每次调用的时候, 都提示我:
MissingMethodException, 在MainForm里面没有找到AddMenuItem这么个方法。
我靠~
当然了, 如果把exe和dll都拿出来直接跑, 是没问题的。
只有visual studio调试的时候会出问题。
但是没有调试功能, 下面的东东我怎么写啊?
=。=
最后各种绕法都试过了。
如果删除整个代码文件夹, 重新从vss获取, 然后重新编译, 就OK了。
但是一旦Form有点更改, 就又完蛋了。。。。。
so, 最后想了这么个办法:
定义了一个IMainForm接口, 将方法加在这个接口上。
然后让MainForm实现这个接口。
然后我调用的时候, 直接调用接口方法。
大家知道, 这个更改和没改是一样的。 因为还是在调用这个方法, 只不过是用接口过去的而已。
可是!
丫的visual studio这次就不报错了!!!
为什么捏?
因为我用的是借口, 而不是as, 它实在是“不好意思”告诉我说它找不到!!!
囧rz visual studio你怎么可以这么可爱。。。
纠结了我很久。
我这里做一个插件类型的东西。
比如, 一个窗体叫MainForm,
然后一个接口叫IPlugIn。
然后IPlugIn在载入的时候调用IPlugIn.OnLoad方法。
我写了一个IPlugIn, 他在OnLoad的时候, 会自动在MainForm里面添加一个菜单。
于是我就在MainForm类上加了一个AddMenuItem的方法。
然后呢, MainForm我可以通过一些办法拿到, 但是拿到的时候是Form类型, 而不是MainForm类型。
所以要as一下, 然后调用MainForm上的方法。
大概就是这么个结构。
好, 问题来了:
visual studio不知道抽什么疯, 每次调用的时候, 都提示我:
MissingMethodException, 在MainForm里面没有找到AddMenuItem这么个方法。
我靠~
当然了, 如果把exe和dll都拿出来直接跑, 是没问题的。
只有visual studio调试的时候会出问题。
但是没有调试功能, 下面的东东我怎么写啊?
=。=
最后各种绕法都试过了。
如果删除整个代码文件夹, 重新从vss获取, 然后重新编译, 就OK了。
但是一旦Form有点更改, 就又完蛋了。。。。。
so, 最后想了这么个办法:
定义了一个IMainForm接口, 将方法加在这个接口上。
然后让MainForm实现这个接口。
然后我调用的时候, 直接调用接口方法。
大家知道, 这个更改和没改是一样的。 因为还是在调用这个方法, 只不过是用接口过去的而已。
可是!
丫的visual studio这次就不报错了!!!
为什么捏?
因为我用的是借口, 而不是as, 它实在是“不好意思”告诉我说它找不到!!!
囧rz visual studio你怎么可以这么可爱。。。
我恨死你了!
posted @ 2011-03-24 15:50 undefined 阅读(135) 评论(1) 编辑

