[英]Initialize generic class by string
我有一個字符串“ 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
{
..
..
}
您可以通過反射從程序集中獲取類型,並使用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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.