2013-05-10 55 views
1

我将如何实现以下内容作为将在WCF服务中使用的C#类结构? 该结构位于将从其创建该类的文档中。主要是可以有多个发生的人的课程,这是我遇到的问题。WCF DataContract的C#类结构

物品 - 类

标识符 - 类(项目的成员)

  • FIELD1(INT)
  • FIELD2(字符串)

细节 - 类(项目的部件)

  • detail1(int)
  • detail2(串)
  • ...

人 - 类(项目成员)

人 - 类(可以有1到200 occurances)

  • INFO2(字符串)

我目前有以下内容,不确定需要什么做来完成:

[DataContract] 
public class Item 
{ 
    public class identifier 
    { 
     [DataMember] 
     public int field1; 

     [DataMember] 
     public string field2; 
    } 

    public class details 
    { 
     [DataMember] 
     public int detail1; 

     [DataMember] 
     public string detail2; 
    } 

    public class persons 
    { 
     public class person 
     { 

     } 
    } 
} 
+0

为什么只将'[DataContract]放在其中一个类上? – JeremyK 2013-05-10 13:02:08

+0

@JeremyK - 我还没有找到。我只是想拼凑起来。这也是我的第一个WCF服务。 – KDee 2013-05-10 13:11:02

+2

这是一个实体建模问题,而不是WCF问题。而且,嵌套类是非常规的。 – 2013-05-10 13:16:50

回答

6

通过另一个类中嵌套类的声明没有实例它创建,不知何故神奇。声明WCF合约的数据无论如何都不同,除了相应的属性装饰 - 从声明任何其他数据结构。因此,您可能正在寻找类似如下的东西:

[DataContract] 
public class Identifier { … } 

[DataContract] 
public class Details { … } 

[DataContract] 
public class Person { … } 

[DataContract] 
public class Item 
{ 
    [DataMember] 
    public Identifier ID { get; set; } 

    [DataMember] 
    public Details Details { get; set; } 

    [DataMember] 
    public List<Person> Persons { get; set; } 
}