【问题标题】:Using Datacontract: WCF使用数据契约:WCF
【发布时间】:2013-11-19 22:51:18
【问题描述】:

我应该如何声明数据合同

我的操作合约有一个方法:

苹果GetApples()

我的数据合同 Apple 的样子

[DataContract]
public class Apple
{
   [DataMember]
   public int Id { get; set; }

    [DataMember]
    public FruitType type { get; set; }
}

因为还有另一个 FruitType 类型的成员。

[DataContract]
public class FruitType
{
   [DataMember]
   public int Id { get; set; }

    [DataMember]
    public string type { get; set; }
}

或 作为一个简单的类

  public class FruitType
  {     
    public int Id { get; set; }     
    public string type { get; set; }
  }

这两者有什么区别?除此之外,简单类型不是数据合同,将取决于我想如何使用它。?

我应该如何申报??

【问题讨论】:

标签: c# wcf datacontract


【解决方案1】:

这些属性使您可以控制您的属性将如何以不同的格式表示。例如,对于 XML,您可以指定 XML 命名空间和 XML 节点名称。

即使您对默认属性名称和默认命名空间感到满意,当您尝试将数据序列化为 XML 时,您的 XML 节点也会有奇怪的名称,例如 typek_BackingField。

换句话说,如果您使用 WCF,您应该使用 DataContract 和 DataMember 属性,即使您认为它工作正常,格式化的数据可能看起来不像您期望的那样。因此,它消除了与其他(非 WCF)系统的兼容性。甚至当您不与其他 WCF 系统共享您的类型(合同)时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多