2012-11-06 42 views
2

要创建一个类的实例与激活自定义的数据,如下列:创建activationCustomData参数类实例

var repo = Activator.CreateInstance(Type.GetType(repoFullName), 
       new string[] { connectionString }) as IRepository; 

如果我没有通过这第二个参数CreateInstance方法一切字符串数组工作正常,但与定制数据参数方法抛出异常

system.missingMethodException而:上式“Namespase.MockRepository”构造未找到。

实例类型的公共构造

public MockRepository(string[] customData) {...} 

public MockRepository(Object[] customData) {...} 

没有改变的效果。我做错了什么?

回答

2

您需要修改构造函数签名,现在你在呼唤它传递一个字符串/对象,而不是一个数组,因此无法找到匹配的构造函数,如果要激活的对象的方式视图反射以这种方式对象必须有一个匹配的构造到调用代码。您使用的对象阵列将参数传递给激活的原因是允许多个参数被传递到基于位置的构造和类型必须的定义相匹配。

如果你有一个构造函数:

public MockRepository(string customData) {...} 

应该正确实例化,这是说,如果你也打算不传递任何参数,你需要定义一个无参数的构造函数以及构造函数来实例化。

+0

的工作,谢谢。 – Maxim