既知のタイプで呼び出すと完全に正常に機能する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拡張メソッドを変更する必要がありますか、それとも実行時型を渡す方法を変更する必要がありますか?もしそうなら、どうすればそれを達成できますか。