2014-01-16 1 views
2

서비스 계약에 사용되는 DataContract가 있습니다.DataContract를 자체 DataMember로 참조 할 수 있습니까?

[DataContract] 
public class Task 
{ 
    [DataMember] 
    public int Name; 
    [DataMember] 
    public string Type; 
    [DataMember] 
    public string Description; 
    [DataMember] 
    public SubTask[] SubTasks; 
} 

[DataContract] 
public class SubTask 
{ 
    [DataMember] 
    public int Name; 
    [DataMember] 
    public string Type; 
    [DataMember] 
    public string Description; 
    [DataMember] 
    public SubTask[] SubTasks; 
} 

는 하위가 +10 하위 가질 수

질문 이제 I 위의 예 에서처럼 자체로 DataContract DataMember를 참조 할 수 있는가?

Task 1 
    SubTask 1 
     SubSubTask 1 
     SubSubTask 2 
      SubSubSubTask 1 
    SubTask 2 
+0

이 그것을 시도하고 참조하십시오. SubTask 클래스를 지적하는 것이 실제로 사용되지는 않습니다. 대신'Task' 배열을 가지고 계시지 않습니까? – Joe

답변

0

WCF에서 재귀적인 DataContract 참조를 사용할 수 있어야합니다.

DataContractSerializer가 재귀 적 특성을 제대로 처리하려면 "IsReference = true"를 DataContract 특성에 추가해야 할 수도 있습니다.

[DataContract(IsReference = true)] 

다음 링크

재귀 멤버들과 DataContracts을 토론