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

Ant*_*lho 4 c#

我有一个Class和一个Sub Clas

namespace MyCode
{
    public class Class1
    {
        int a = 1;
        int b = 2;
        public class SubClass1
        {
            int a = 1;
            int b = 2;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我需要按字符串名称实例化每个类.我可以从类中完成此操作,但不能用于子类.

这有效:

var myObj = Activator.CreateInstance(Type.GetType("MyCode." + "Class1"));
Run Code Online (Sandbox Code Playgroud)

但是,这不行:

var myObj = Activator.CreateInstance(Type.GetType("MyCode." + "Class1.SubClass1"));
Run Code Online (Sandbox Code Playgroud)

我需要为第二种选择做什么?

Sco*_*ain 8

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

当你有一个子类时,你使用+符号.

var myObj = Activator.CreateInstance(Type.GetType("MyCode." + "Class1+SubClass1"));
Run Code Online (Sandbox Code Playgroud)


Igo*_*gor 6

var myObj = Activator.CreateInstance(Type.GetType("MyCode.Class1+SubClass1"));
Run Code Online (Sandbox Code Playgroud)

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