我有一个 JSON 反序列化器(如下所示),当我使用已知类型调用它时,它工作得非常好。
public static T Deserialize<T>(this object obj)
{
var javaScriptSerializer = new JavaScriptSerializer();
return (obj != null) ?
javaScriptSerializer.Deserialize<T>(obj.ToString()) :
default(T);
}
所以这个电话会起作用:
var newExampleTypeX = exampleJsonString.Deserialize<ExampleTypeX>();
但是,我要做的是传入一个在运行时设置的类型,并使用它来代替“ExampleTypeX”。当我这样做时,我收到以下编译错误:
Cannot resolve symbol 'someType'
所以 someType 的声明看起来像这样(这是一个简化的版本):
var someType = typeof(ExampleTypeX);
var newExampleTypeX = message.Deserialize<someType>();
我应该以某种方式更改我的 Deserialize 扩展方法,还是更改我传入运行时类型的方式?如果是这样,那么我该如何实现。