技术开发 频道

WCF中的Data Contract:Data Contract Overview


   仔细分析CustomOrder和Service的Order以及XSD,我们发现两者除了结构一样之外,没有一处使相同的,具体体现在:

   Class Name不一样。

   NameSpace不一样,Order和XSD的namespace为http://artech.datacontractversioning,而CustomOrder却没有显示指定一个Namespace(这样WCF会为其指定一个默认的namespace)。

    成员的名称不一样。

    成员的顺利不一样。

    如果我们现在要使我们的CustomOrder满足现有的Order Data Contract,我们就需要消除这些不同之处,通过DataContractAttribute和DataMemberAttribute,这样的问题根本就不是问题,下面就是我们重新定义的CustomOrder class。

[DataContract(Name="Order",Namespace="http://artech.datacontractversioning")]
public class CustomOrder
{
[DataMember(Order = 0, Name="OrderID")]
public Guid OrderNo
{ get; set; }

[DataMember(Order = 2, Name = "SupplierID")]
public Guid SupplierNo
{ get; set; }

[DataMember(Order = 1)]
public DateTime OrderDate
{ get; set; }

[DataMember(Order = 3)]
public string ShippingAddress
{ get; set; }
}
   通过在DataContractAttribute指定Name和Namespace使Data Contract和Namespace和既定的Contract相匹配,通过DataMemberAttribute的Name和Order参数是成员的名称和次序与既定的Contract相匹配。
0
相关文章