[英]how to prevent serializing datamember in wcf service
我有一个方法,它在InsuredGeneralInfo和InsuredAddrInfo中具有一些我不想序列化的成员,例如createdby,createddate等。 我没有向其中添加[datamember]属性,但是当我使用wcf客户端对其进行测试时,仍然可以在响应xml中看到它们。 任何原因?
这是接口中的声明
public class InsuredInfo
{
public InsuredGeneralInfo insuredGeneralInfo { get; set; }
public InsuredAddressInfo insuredAddrInfo { get; set; }
}
[DataContract]
public class InsuredGeneralInfo
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string MiddleInitial { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string Gender { get; set; }
[DataMember]
public string DOB { get; set; }
[DataMember]
public string SSN { get; set; }
public string CreatedBy { get; set; }
public DateTime CreatedDate { get; set; }
public string LastModifiedBy { get; set; }
public DateTime LastModifiedDate { get; set; }
}
输出:
<insuredGeneralInfo>
<FirstName>test</FirstName>
<MiddleInitial>t</MiddleInitial>
<LastName>test</LastName>
<Gender>male</Gender>
<DOB>12-25-1982</DOB>
<SSN>123456789</SSN>
<CreatedBy>ad</CreatedBy>
<CreatedDate>2015-06-24T16:12:00</CreatedDate>
<LastModifiedBy>ad</LastModifiedBy>
<LastModifiedDate>2015-06-24T16:12:00</LastModifiedDate>
</insuredGeneralInfo>
使用WCF,您可以选择使用DataContract / Datamember或仅使用公共属性。
如果您使用不带属性的公共属性,那么所有公共属性都将被序列化。 如果您使用DataContract / Datamember,那么只有具有DataContract / Datamember的字段将被序列化。
在您的情况下,根类InsuredInfo没有用DataContract / Datamember标记,因此WCF会序列化所有公共属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.