根据字符串创建类的实例

本文关键字:实例 创建 字符串 | 更新日期: 2023-09-27 17:50:27

我的项目中有12个类:

class class1
{
}
class class2
{
}

在另一个类中,我有一个方法,我想创建class1class2的实例根据字符串:

public void MyMethod(string s)
{
//I want to create an instance of class1 if s=="class1" or class2 if s=="class2"
} 

我该怎么做?

根据字符串创建类的实例

这是一个解决方案,尝试这个希望它会工作。

首先你需要在字符串中传递类的实际名称,例如,如果你有一个类ClassA,然后传递ClassA到这个类,它将创建一个类的实例。

private object MyMethod(string className)
{
    var assembly = Assembly.GetExecutingAssembly();
    var type = assembly.GetTypes()
    .First(t => t.Name == className);
    return Activator.CreateInstance(type);
}