c# - 基于 Type 变量创建通用对象

标签 c# .net generics

<分区>

我需要根据存储在数据库中的类型创建一个通用对象。我怎样才能做到这一点?下面的代码(不会编译)解释了我的意思:

string typeString = GetTypeFromDatabase(key);
Type objectType = Type.GetType(typeString);

//This won't work, but you get the idea!
MyObject<objectType> myobject = new MyObject<objectType>();

这种事情有可能吗?

谢谢

最佳答案

Type type = typeof(MyObject<>).MakeGenericType(objectType);
object myObject = Activator.CreateInstance(type);

还有——注意; Type.GetType(string) 只检查执行程序集和一些系统程序集;它不会扫描所有内容。如果您使用程序集限定名称,您应该没问题 - 否则您可能需要先获取 Assembly,然后使用 someAssembly.GetType(string)

关于c# - 基于 Type 变量创建通用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955331/

相关文章:

c# - MVC 密码格式 : Hash , 无需键入用户名/密码即可验证用户

c# - 如何在 C# 中合并 2 个 List<T> 并从中删除重复值

c# - Npgsql v3 上的 Dapper IPAddress/PhysicalAddress/Enum 参数支持

.net - Azure 表复杂数据最佳实践

c# - 接口(interface)的通用实现

c# - 从树结构的每一层获取属性

c# - XElement 自动将 xmlns =""添加到自身

c# - 如何正确更改C#中RadioButton组当前选中的RadioButton

c# - 字典的匿名集合初始值设定项

java - 使用类参数时,类型绑定(bind)不是通过构造函数推断的吗?