【发布时间】:2014-10-20 05:12:17
【问题描述】:
我有一个类,它包含一个空构造函数和一个接受对象数组作为其唯一参数的类。比如……
public myClass(){ return; }
public myClass(object[] aObj){ return; }
这是我使用的 CreateInstance() 方法调用
object[] objectArray = new object[5];
// Populate objectArray variable
Activator.CreateInstance(typeof(myClass), objectArray);
它抛出 System.MissingMethodException 并添加一条消息,内容为
“未找到类型 'myClass' 的构造函数”
我所做的一些研究总是显示该方法被调用
Activator.CreateInstance(typeof(myClass), arg1, arg2);
其中 arg1 和 arg2 是类型(字符串、int、bool)而不是通用对象。 我将如何仅以对象数组作为其参数列表来调用此方法?
注意:我尝试在方法签名中添加另一个变量。比如……
public myClass(object[] aObj, bool notUsed){ return; }
这样代码执行得很好。 我也看到了使用反射的方法,这些方法是合适的,但我对这个具体案例特别感兴趣。如果方法签名确实与传递的参数匹配,为什么会引发此异常?
【问题讨论】: