私はクラスを持っています:
[DataContract]
public class A
{
[DataMember]
public B ArbitraryProperty { get; set;}
}
シリアル化する場合、「ArbitraryProperty」はクラス「B」の形式である必要があります。
[DataContract]
public class B
{
[DataMember]
public string ValueA { get; set; }
[DataMember]
public string ValueB { get; set; }
}
JSON 出力は次のとおりです。
{
"ArbitraryProperty": { "ValueA": "I'm a value.", "ValueB": "I'm a value too!" }
}
ただし、サーバーから同じオブジェクトを取得すると、プロパティは次のような単純な文字列として返されます。
{
"ArbitraryProperty": "I'm not a B, muahahaha!!!"
}
DataContractJsonSerializer に、値を「B」ではなく文字列に逆シリアル化する必要があることを知らせるには、トリックが必要です。
クラス「A」を設定する特別な方法はありますか? :/
助言がありますか?