我有一个要在服务合同中使用的DataContract,例如
[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个子任务,现在我可以像上面的示例一样将DataContract作为DataMember对其自身进行引用吗?
Task 1
SubTask 1
SubSubTask 1
SubSubTask 2
SubSubSubTask 1
SubTask 2
最佳答案
您应该能够在WCF中使用递归DataContract引用。
您可能需要在DataContract属性中添加“ IsReference = true”,以便DataContractSerializer正确处理递归性质。
[DataContract(IsReference = true)]
以下链接与递归成员讨论DataContracts:
http://msdn.microsoft.com/en-us/library/vstudio/hh241056(v=vs.100).aspx
http://stefanoricciardi.com/2009/10/22/making-wcf-serializer-work-with-circular-references/
Recursive object not passed over WCF
关于c# - 我可以引用DataContract作为DataMember本身,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21159903/