【发布时间】:2017-08-10 06:29:10
【问题描述】:
我有一堂课:
[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”类? :/
有什么建议吗?
【问题讨论】:
-
听起来你有两个类,一个有
B属性,一个有string属性。你的输出和你说的回来是两个完全不相关的数据结构。 -
@JoeEnos 因此问题:) 我真的不想为我的请求和响应类型创建不同的类...
标签: c# json datacontractjsonserializer