我有一个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"));
我需要为第二个选项做些什么?
答案 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"));
在处理嵌套类型时+
,而不是.