我有一堂课:
[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”类?:/
有什么建议么?