通过字符串na C#实例化子类

时间:2017-03-13 14:49:48

标签: c#

我有一个Class和一个Sub Clas

namespace MyCode
{
    public class Class1
    {
        int a = 1;
        int b = 2;
        public class SubClass1
        {
            int a = 1;
            int b = 2;
        }
    }
}

现在我需要按字符串名称实例化每个类。我可以从类中做到这一点,但不能用于子类。

这有效:

var myObj = Activator.CreateInstance(Type.GetType("MyCode." + "Class1"));

但是这个,不行!:

var myObj = Activator.CreateInstance(Type.GetType("MyCode." + "Class1.SubClass1"));

我需要为第二个选项做些什么?

2 个答案:

答案 0 :(得分:8)

每当您不知道名称应该是什么时,您可以通过选中typeof(MyCode.Class1.SubClass1).FullName来查看名称。

如果您有子类,则使用+符号。

var myObj = Activator.CreateInstance(Type.GetType("MyCode." + "Class1+SubClass1"));

答案 1 :(得分:6)

var myObj = Activator.CreateInstance(Type.GetType("MyCode.Class1+SubClass1"));

在处理嵌套类型时+,而不是.