0

我有一个需要返回 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; }
}

我怎样才能让它以我想要的格式返回响应?

4

1 回答 1

2

简短的回答是:Bar​​t Beyers 是正确的,应用 [DataContract] 属性。

长分析器取自 MSDN:

您创建的新复杂类型必须定义数据协定以使其可序列化。默认情况下,DataContractSerializer 推断数据协定并序列化所有公开可见的类型。该类型的所有公共读/写属性和字段都已序列化。

http://msdn.microsoft.com/en-us/library/ms733127%28v=vs.110%29.aspx

于 2014-03-04T08:40:40.663 回答