我有一个需要返回Json响应的WCF服务:
{
"Content": {
"Id": 817
"Message":"message"
},
"Status": "Ok"
}
这里的message参数在某些情况下是可选的,它存在,而在某些情况下它不存在。我尝试使用以下DataContract使其工作。但它似乎没有用。我在每个响应中得到一条包含消息为null的响应。
[DataContract]
public class CreateNewCandidate_Response
{
[DataMember(Order=0, IsRequired=true)]
public string Status { get; set; }
[DataMember(Order = 1, IsRequired = false, EmitDefaultValue = false)]
public CreateNewCandidate_Response_Content Content { get; set; }
[DataMember(Order = 1, IsRequired = false, EmitDefaultValue = false)]
public error Errors { get; set; }
}
public class error
{
[DataMember(Order = 0)]
public string Code { get; set; }
[DataMember(Order = 1, IsRequired = false, EmitDefaultValue = false)]
public string Message { get; set; }
}
public class CreateNewCandidate_Response_Content
{
[DataMember(Order = 0, IsRequired = true, EmitDefaultValue = true)]
public int CandidateId { get; set; }
[DataMember(Order = 0, IsRequired = false, EmitDefaultValue = false)]
public string Message { get; set; }
}
如何让它以我想要的格式返回响应?
答案 0 :(得分:2)
简短的回答是: Bart Beyers是正确的,应用[DataContract]属性。
长的anser来自MSDN:
您创建的新复杂类型必须具有为其序列化的数据协定。默认情况下,DataContractSerializer会推断数据协定并序列化所有公开可见的类型。所有公共读/写属性和类型的字段都是序列化的。
http://msdn.microsoft.com/en-us/library/ms733127%28v=vs.110%29.aspx