如何在.NET泛型中动态指定“T”值?

时间:2016-09-02 16:30:41

标签: c# .net generics

我不确定是否可以这样做,但我想知道是否可以在运行时指定泛型的'T'类型。我有一个已经序列化并存储在数据库中的对象。还存储了对象的类型。因此,当检索对象时,我将序列化对象存储在字符串变量中,因为它的类型也存储在字符串变量中。我希望能做的是这样的事情:

var serializer = new AbcSerializer();
var typeString = "Abc.Group.Common.Domain.DomainObject, Abc.Group.Common.Domain";
var serializedObject = "some serialized data here...";
var retObj = serializer.Deserialize<Type.GetType(typeString)>(serializedObject);

有人知道这是否可行?

与此类似的其他问题谈论如下使用MakeGenericType:

Type constructed = d1.MakeGenericType(typeArgs);

然后做:

object o = Activator.CreateInstance(constructed);

创建该对象的实例。这不是我想要做的。我想从已经序列化的数据创建我的对象的实例。

0 个答案:

没有答案