如何使用反射创建一个以接口作为构造函数参数的类实例?

时间:2013-03-21 09:55:16

标签: c# reflection

object[] parame = new object[1];
parameters[0] = param1;

ConstructorInfo[] info = type.GetConstructors();
info[0].Invoke(parame );

obj= Activator.CreateInstance(type, parameters);

这使我错误地说找不到ctor,因为ctor将接口作为参数。

现在如何创建此对象的实例?

public Controller(ICustomInterface custom)
        {
            _custom= custom;
        }

我尝试用相同的param调用ctor,并且说这个类的对象不能转换为Interface类型。虽然这个类实现了这个接口。

1 个答案:

答案 0 :(得分:2)

实现您的接口,以便您可以创建实现接口的实例,如下所示:

class CustomClass : ICustomInterface {}

您只需将Activator称为

即可
var obj = Activator.CreateInstance(typeof(Controller), new CustomClass());

它将返回Contoller的正确实例,new CustomClass()作为构造函数参数传递