たとえば、次のようなオブジェクトがあります。
public class Container
{
public object Data { get; set; }
}
そしてそれはこのように使用されます:
Container container = new Container
{
Data = new Dictionary<string, object> { { "Text", "Hello world" } }
};
上記のインスタンスをシリアル化して取得したJSON文字列を逆シリアル化すると、Data
プロパティは、を指定しても、 :ExpandoObjectConverter
として逆シリアル化されません。ExpandoObject
Container container = JsonConvert.Deserialize<Container>(jsonText, new ExpandoObjectConverter());
匿名オブジェクトで割り当てられたクラスプロパティ、または少なくとも具体的なタイプではないクラスプロパティを逆シリアル化するにはどうすればよいExpandoObject
ですか?
編集:
誰かが私が動的オブジェクトを使うことができると答えました。これは私にはうまくいきません。私はこの方法で進むことができることを知っていますが、ExpandoObjectが必要なため、そうではありません。ありがとう。
編集2:
他のユーザーは、JSON文字列をに逆シリアル化できると答えましたExpandoObject
。これはこの質問の目的ではありません。動的プロパティを持つ具象型を逆シリアル化する必要があります。JSON文字列では、このプロパティは連想配列である可能性があります。