我有一个班和一个副班

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"));

第二个选择我需要做什么?

最佳答案

当你不知道名字应该是什么时,你可以通过检查typeof(MyCode.Class1.SubClass1).FullName来看到名字。
如果有子类,则使用+符号。

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

09-12 23:58