2014-03-04 2 views
0

은 내가 JSON 응답을 반환해야하는 WCF 서비스가 : 여기WCF 서비스 옵션 DataMember를

{ 
"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

나는이 문제를 해결할 것 알고, 또한 [DataContract] 속성 오류 및 CreateNewCandidate_Response_Content 클래스를 장식하지 않습니다. –

답변

2

짧은 대답은 바트 바이어스가 정확합니다. [DataContract] 속성을 적용하십시오.

긴 답변은 MSDN에서 가져온 것입니다 : 당신이 그 (것)들을 직렬화 가능하도록 데이터 계약이 정의되어 있어야 만들

새로운 복합 유형을. 기본적으로 DataContractSerializer는 데이터 계약을 추론하고 모든 공개적으로 표시되는 형식을 serialize합니다. 모든 공용 읽기/쓰기 특성과 유형의 필드가 직렬화됩니다.

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