0
JsonをDataContractに逆シリアル化する目的で匿名メソッドを作成しようとしています。これは、私が各jsonクエリのために書いた各DataContractクラスに対して同じコードを書く必要なしに、何かを再利用できるようにするでしょう。それはIDEで私にエラーを与えているjsonを文字列からDataContractに逆シリアル化するための匿名型
public T Json2Object<T>(string json, Encoding encoding) {
T result;
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
using (Stream s = new MemoryStream((encoding ?? Encoding.UTF8).GetBytes(json ?? ""))) {
result = ser.ReadObject(s) as T;
}
return result;
}
次のように:
これはハードずに調整することができますどのように次のように
私がこれまで持っているコードは、ありますタイプをコーディングして、私が意図した通りに動くようにしますか?
非常に素晴らしい、ありがとうございました。 'どこにT:class'があるのか' class'を特定のクラスに置き換える必要があります。例えば、私のdatacontractクラスの名前が 'Foo'の場合、' T:Foo'と書かれていますか、 'T:class'はあなたの書いたとおりに動作しますか? –
@KraangPrime Nope、 'T:class'はあなたが書く必要がある場所です。 'T 'を*参照型*に制限します。 'int'は値の型なので' Json2Object(someJson、someEncoding) 'を書くことは禁止されていることに注意してください。 'int'を渡すことができるようにするには、代わりにキャストのアプローチを使用する必要があります。 –
Rob
それは素晴らしいです。正確に私が必要としたもの。ありがとうございました :) –