技术开发 频道

WCF Data Contract对Generic的支持


【IT168技术文档】

  在.NET中,基于Primary Type,比如Int32,String等等,他们具有一个简单的默认的序列化方式和结构,可以说他们不需要Data Contract。接下来我们主要讨论的是一些相对比较特殊的、完全基于.NET的Data Type,比如Generic、Collection,和Dictionary。首先,我们结合例子来谈谈基于Generic的Data Type的Data Contract。

  假设我们需要创建一个用于处理一些单据(Bill)的Service,比如如Order Bill、Sales Bill等。一般的单据都有一个单据头(Header)和明细(Detail)列表,为此我们创建了一个Generic的Bill。并
namespace Artech.SpecialDataContract.Contract { [DataContract] public class Bill<THeader, TDetail> { [DataMember] public THeader Header { get; set; } [DataMember] public IList<TDetail> DetailList { get; set; } } [DataContract] public class OrderHeader { [DataMember] public Guid OrderID { get; set; } [DataMember] public DateTime OrderDate { get; set; } } [DataContract] public class OrderDetail { [DataMember] public Guid ProductID { get; set; } [DataMember] public int Quantity { get; set; } } }
0
相关文章