2014-03-04 64 views
0

我有需要返回一個JSON響應一個WCF服務:WCF服務可選的數據成員

{ 
"Content": { 
"Id": 817 
"Message":"message" 
}, 
"Status": "Ok" 
} 

這裏的消息參數是存在某些情況下,可選的,在一些沒有。我試圖讓它使用以下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; } 
} 

我該如何得到它以我想要的格式返回響應?

+2

我不知道,如果它要解決這個問題,同時也裝點錯誤和CreateNewCandidate_Response_Content類使用[DataContract]屬性。 –

回答

2

簡短的回答是: Bart Beyers是正確的,應用[DataContract]屬性。

長雁是從MSDN採取:您創建必須有一個數據合同規定對它們進行序列化

新的複雜類型。默認情況下,DataContractSerializer推斷數據協定並序列化所有公開可見的類型。所有公共讀/寫屬性和類型的字段都被序列化。

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