我有一个字符串"MyClass“。有没有办法通过字符串初始化泛型对象?
public void LoadToCache<T>(string key) where T : class, new()
{
//string key is a class name like "MyClass"
using (var bl = new BusinessLayer<key>())
{
bl.GetAll();
}
}
//---------------------------------------------------------------
public class BusinessLayer<T> where T : class
{
..
..
}
//---------------------------------------------------------------
public class MyClass
{
..
..
}
发布于 2018-06-06 04:03:56
您可以通过反射从程序集中获取类型,并使用Activator.CreateInstance
创建一个实例。
我希望这能有所帮助:
我的班级:
public class Car
{
}
方法:
string myClass = "Car";
var types = Assembly.GetExecutingAssembly().GetTypes().ToList();
var myType = types.FirstOrDefault(i => i.IsClass && i.Name == myClass);
var instance = Activator.CreateInstance((Type) myType);
Console.Write(instance.ToString());
https://stackoverflow.com/questions/50705671
复制相似问题