EDIT#2:
私はdynamic
オブジェクトにデシリアライズするために優れたJson.NETライブラリを使用することについて、以下の注記を追加しました。
EDIT#1:Hoghweed's answerから
おかげで、以下の私の答えは、今より完全です。具体的には、我々はに必要な、我々が期待どおりに動作するdynamic
-nessためにExpandoObject
にHttpResponseMessage.Content
から取得HttpContent
をキャスト:
dynamic content = response.Content.ReadAsAsync<ExpandoObject>().Result;
var myPropertyValue = content.MyProperty;
しかしReadAsync<T>()
拡張メソッドを取得するには、あなたがNuGetを使用する必要があるだろうMicrosoft.AspNet.WebApi.Client
パッケージ(here's the "old" Nuget page、上記のパッケージに含まれていることを記載しています)からSystem.Net.Http.Formatting.dll
をダウンロードしてインストールしてください。
オリジナル回答:
だから、あなたがPOCOを作成するために持っていて、変更を取り戻すXML/JSON構造としてそのプロパティを管理する必要がありますする必要はありません。 dynamic
は、ユースケースのための完璧なようだ:具体的にXMLに関する
HttpResponseMessage response = await client.PostAsync(
"http://www.someAPI.com/api.xml", requestContent);
response.EnsureSuccessStatusCode();
dynamic content = response.Content.ReadAsAsync<ExpandoObject>().Result; // Notice the use of the dynamic keyword
var myPropertyValue = content.MyProperty; // Compiles just fine, retrieves the value of this at runtime (as long as it exists, of course)
:あなたがdynamic
とXML
、とバックの間で変換するときに非常に役立つかもしれないAnoop Madhusudanan's ElasticObject
を試みることができます。具体的にJSONに関する
:あなたはJson.NETはこのような何かを使用することができます
dynamic content = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result);
var myPropertyValue = content.MyProperty;
アップ側は、あなたが(Microsoft.AspNet.WebApi.Client
パッケージの依存を取らないことであるv4.0.30506.0
のとしての、 Json.NETに依存します)。欠点は、これをXMLに使用できないことです。
これが役に立ちます。ダイナミックとしてHttpResponseMessage.Content
を読む
あなたの質問を再調整する必要があります:今のところ、答えは**はい**と**はい**です。しかし、私はあなたにそれほど助けにならないと思います。 – Andreas
[動的](http://msdn.microsoft.com/en-us/library/dd264741.aspx)変数に戻ってそのプロパティ/値にアクセスするコンテンツを割り当ててみることもできますが、 dはもちろん、プロパティの名前は –
ですが、私はすでにデータ構造を知っている必要があります。私はちょうどその上にモデルを構築したくありません。 – Saturnix