使用反射创建实例

时间:2017-03-09 21:22:26

标签: c# .net

要创建类的实例,我们可以这样做:

Person p = new Person();

但是,我想用类似的字符串传递类dynamicate的名称:

String name = "Human.Person"
name n = new name();

我知道这是错的,但我看到我可以使用反射,但我不明白如何将它用于我的情况。

2 个答案:

答案 0 :(得分:2)

您可以在此方案中使用Activator.CreateInstance。

# array: [-2, 0, 1, 3]
# target: 2
# => 2

# array: [-3, 4, -4, 1, -1, -2, -1, -1, -5]
# target: -3
# => 48

或最常使用基类或接口:

ViewContainerRef.createComponent()

答案 1 :(得分:1)

  Type t = Type.GetType(name); 
  Human.Person p = Activator.CreateInstance(t) as Human.Person;

更新: 谢谢@Dag 如果Human.person在另一个程序集中

Type t = a.GetType(name, "assemblyName"); 
Human.Person p = Activator.CreateInstance(t) as Human.Person;
相关问题