如何在 WCF 数据协定中传递强类型 class 引用
How to pass strongly typed class reference in WCF data Contract
我有 WCF 的数据合同,它有自定义 class 变量引用,我想知道我是否需要在配置或其他方面做任何额外的事情。即地址数据
会员class
[DataContract]
public class MemberData : IIdentifiableEntity
{
[DataMember]
public int MemberID { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public string Surname { get; set; }
[DataMember]
public string Forename { get; set; }
[DataMember]
public string MiddleName { get; set; }
[DataMember]
public string PrevSurname { get; set; }
[DataMember]
public System.DateTime DOB { get; set; }
[DataMember]
public string Sex { get; set; }
[DataMember]
public AddressData Address { get; set; }
[DataMember]
public ContactDetailData ContactDetail { get; set; }
[DataMember]
public MembershipData Membership { get; set; }
int IIdentifiableEntity.EntityId
{
get { return MemberID; }
set { MemberID = value; }
}
}
地址class
public class AddressData
{
public int MemberID { get; set; }
public int AddressType { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string AddressLine3 { get; set; }
public string PostCode { get; set; }
public string City { get; set; }
public string County { get; set; }
public string Town { get; set; }
public string Country { get; set; }
public MemberData Member { get; set; }
}
do I need to do anything additional
虽然您不需要使用 DataMember 属性来装饰您的服务类型(WCF 仍会序列化它们,只要它们仅包含可序列化类型),您通常仍应使用该属性。
来自:
- without [DataContract], you cannot define an XML namespace for your data to live in
- without [DataMember], you cannot serialize non-public properties or fields
- without [DataMember], you cannot define an order of serialization (Order=) and the DCS will serialize all properties alphabetically
- without [DataMember], you cannot define a different name for your property (Name=)
- without [DataMember], you cannot define things like IsRequired= or other useful attributes
- without [DataMember], you cannot leave out certain public properties - all public properties will be serialized by the DCS
我有 WCF 的数据合同,它有自定义 class 变量引用,我想知道我是否需要在配置或其他方面做任何额外的事情。即地址数据
会员class
[DataContract]
public class MemberData : IIdentifiableEntity
{
[DataMember]
public int MemberID { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public string Surname { get; set; }
[DataMember]
public string Forename { get; set; }
[DataMember]
public string MiddleName { get; set; }
[DataMember]
public string PrevSurname { get; set; }
[DataMember]
public System.DateTime DOB { get; set; }
[DataMember]
public string Sex { get; set; }
[DataMember]
public AddressData Address { get; set; }
[DataMember]
public ContactDetailData ContactDetail { get; set; }
[DataMember]
public MembershipData Membership { get; set; }
int IIdentifiableEntity.EntityId
{
get { return MemberID; }
set { MemberID = value; }
}
}
地址class
public class AddressData
{
public int MemberID { get; set; }
public int AddressType { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string AddressLine3 { get; set; }
public string PostCode { get; set; }
public string City { get; set; }
public string County { get; set; }
public string Town { get; set; }
public string Country { get; set; }
public MemberData Member { get; set; }
}
do I need to do anything additional
虽然您不需要使用 DataMember 属性来装饰您的服务类型(WCF 仍会序列化它们,只要它们仅包含可序列化类型),您通常仍应使用该属性。
来自:
- without [DataContract], you cannot define an XML namespace for your data to live in
- without [DataMember], you cannot serialize non-public properties or fields
- without [DataMember], you cannot define an order of serialization (Order=) and the DCS will serialize all properties alphabetically
- without [DataMember], you cannot define a different name for your property (Name=)
- without [DataMember], you cannot define things like IsRequired= or other useful attributes
- without [DataMember], you cannot leave out certain public properties - all public properties will be serialized by the DCS