我有一个WCF服务,它需要返回一个Json响应:
{
"Content": {
"Id": 817
"Message":"message"
},
"Status": "Ok"
}在这里,消息参数在某些情况下是可选的,在某些情况下它是存在的,而在有些情况下则不存在。但似乎不起作用。在每个响应中,我都会得到一个消息为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; }
}如何让它以我想要的格式返回响应?
发布于 2014-03-04 08:40:40
简单的回答是:巴特·拜尔斯是正确的,应用DataContract属性。
long anser取自MSDN:
您创建的新的复杂类型必须定义一个数据契约,以便它们是可序列化的。默认情况下,DataContractSerializer推断数据契约并序列化所有公共可见类型。类型的所有公共读/写属性和字段都是序列化的。
http://msdn.microsoft.com/en-us/library/ms733127%28v=vs.110%29.aspx
https://stackoverflow.com/questions/22166563
复制相似问题