HTTPのWebリクエストから受け取ったストリームのボディをレスポンスとして逆シリアル化したい。問題は、特定の型としてデシリアライズを行う必要がある場合です。私は複数のGetを持っていて、彼らは異なった応答を持っています(1つは戻り値の型p、他の戻り値はq)。私は任意の型を逆シリアル化し、型カストが私に必要な値を返すときに一般化された何かを返す一般化されたメソッドを持っていたい。HTTPレスポンスの戻り値の型特定の型への逆シリアル化
0
A
答えて
0
マジックソースは、どのタイプを入力するかを知っています。これを済ませたら、一般的なデシリアライザを作成するのはかなり簡単です:
public object Deserialize(string serialized, Type T) {
if (string.IsNullOrEmpty(serialized)) {
return null;
}
XmlSerializer xs = new XmlSerializer(T);
MemoryStream ms = new MemoryStream(StringToBytes(s) ?? new byte[0]);
XmlTextWriter tw = new XmlTextWriter(ms, Encoding.UTF8);
return xs.Deserialize(ms);
}
これは一般的な方法に変換するのも簡単です。
+0
返される型を見つけるための他の選択肢はありませんでした。だから、私は、HTTPヘッダ( 'ResponseType')を追加してサービス側の応答に返されるオブジェクトの型を追加しました。クライアント側では、私はちょうどレスポンスヘッダをチェックしてそれに応じてデシリアライズしました。 – Rain
関連する問題
- 1. データ型の逆シリアル化ConcurrentBag
- 2. Javaでの列挙型の逆シリアル化
- 3. 逆シリアル化のカスタムXMLデータ型は
- 4. jQueryデータ型の戻り値のグループ化
- 5. 戻り値の型
- 6. 戻り値の型
- 7. Haskellの戻り値の型多型
- 8. パラメータの型 - >戻り値の型
- 9. 列挙型、シングルトンおよび逆シリアル化
- 10. Scalaの戻り値の型
- 11. C#クラスへのXMLレスポンス文字列の逆シリアル化
- 12. 反射設定戻り値の型obj?
- 13. 厳密に型指定されたリポジトリの戻り値の型
- 14. Json.netは派生型をシリアル化/逆シリアル化しますか?
- 15. 静的戻り値の型
- 16. Linqと戻り値の型
- 17. ジェネリック戻り値の型
- 18. は、戻り値の型
- 19. 逆シリアル化の逆シリアル化
- 20. 自己への逆シリアル化
- 21. 動的型の戻り値型を決定する
- 22. Javaの戻り値の型enum値
- 23. 戻り値型インターフェイス
- 24. 特定の型をシリアル化から除外する方法は?
- 25. 列挙値の逆シリアル化
- 26. オブジェクト内にネストされた型のプロパティを持つJackson多型逆シリアル化
- 27. Rubyのvoid戻り型への代替
- 28. JSON JAXBオブジェクト型のシリアル化
- 29. ブール型のxmlシリアル化エラー
- 30. Javaのパラメータ化メソッドの戻り値の型は
私はブロックをキャッチして、それをデシリアライズしようとすることができますが、それは悪いプログラミングpractice.what他のオプションがありますか? – Rain