调用Type.InvokeMember()时出现MissingMethodException

来源:互联网 发布:天刀全服最帅捏脸数据 编辑:程序博客网 时间:2024/05/17 08:54

调用Type.InvokeMember()时出现MissingMethodException经常是由于缺少必要的BindingFlags引起的。

 

在关于Type.InvokeMember   Method的地方有一大段例子代码。这段代码中有一个片断是“//Call   an   instance   method”,其中BindingFlags用的是BindingFlags.Public   |   BindingFlags.InvokeMethod,即:form1.GetType().InvokeMember( "ShowDialog ",   BindingFlags.Public   |   BindingFlags.InvokeMethod,   null,   form1,   null);

而事实上,如果当调用Form.ShowDialog()时只使用这两个flag,程序就会报一个你们所看到的Exception。但是如果再加上BindingFlags.Instance,问题就马上解决了:form1.GetType().InvokeMember( "ShowDialog ",   BindingFlags.Public   |   BindingFlags.InvokeMethod   |   BindingFlags.Instance   ,   null,   form1,   null);

原创粉丝点击