首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过字符串初始化泛型类

通过字符串初始化泛型类
EN

Stack Overflow用户
提问于 2018-06-06 01:20:00
回答 1查看 96关注 0票数 0

我有一个字符串"MyClass“。有没有办法通过字符串初始化泛型对象?

代码语言:javascript
复制
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
{
  ..
  ..
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-06 04:03:56

您可以通过反射从程序集中获取类型,并使用Activator.CreateInstance创建一个实例。

我希望这能有所帮助:

我的班级:

代码语言:javascript
复制
public class Car
{

}

方法:

代码语言:javascript
复制
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());
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50705671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档