未找到类型''的构造函数

时间:2014-07-15 15:22:14

标签: c# .net reflection

我有两个这样的课程。

public class MyClass
{
    protected readonly int SomeVariable;

    public MyClass(){}

    public MyClass(int someVariable)
    {
        SomeVariable = someVariable;
    }
}

public class MyClass2 : MyClass {}

有没有办法使用Activator.CreateInstance创建类的实例? 我写了这样的话:

public class ActivatorTest<TViewModel>
    where TViewModel : MyClass
{
    public void Run()
    {
        var viewModel = Activator.CreateInstance(typeof(TViewModel), new Object[] {2}) as TViewModel;
    }
}

new ActivatorTest<MyClass2>().Run();

但是我找不到类型'MyClass2'的异常构造函数。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

该类上没有构造函数将两个整数作为参数。添加这样的构造函数或更正传入的参数。

答案 1 :(得分:3)

在这一行

var viewModel = Activator.CreateInstance(typeof(TViewModel), new Object[] {2,3}) as TViewModel;

您尝试在此处向您的ctor添加两个int参数:new Object[] {2,3}

并且没有ctor采用两个参数(在显示的代码中)。

答案 2 :(得分:0)

MyClass2只有默认的无参数构造函数。它不会继承MyClass(int)构造函数。