DataMember IsRequired属性

?

?

1.简介

在数据契约中,如果需要序列化时,则需要传入指定IsRequired属性:

?

摘要:

获取或设置一个值,该值用于指示序列化引擎在读取或反序列化时成员必须存在。

?

public bool IsRequired { get; set; }

?

如:消息发送代码

  1. [DataContract]
  2. public class MessageSendReturnDto
  3. {
  4. ????[DataMember(IsRequired = true)]
  5. ????public int ID { get; set; }
  6. ?
  7. ????[DataMember(IsRequired = true)]
  8. ????public MessageSendStatus Status { get; set; }
  9. ?
  10. ????[DataMember(IsRequired = true)]
  11. ????public MessageSendType ReturnType { get; set; }
  12. ?
  13. ????[DataMember(IsRequired = true)]
  14. ????public DateTime SendDateTime { get; set; }
  15. ?
  16. ????[DataMember(IsRequired = true)]
  17. ????public int SendTimes { get; set; }
  18. ?
  19. ????[DataMember]
  20. ????public string ErrorMessage { get; set; }
  21. }

?

2.什么时候会用到序列化?(时机)

?

2.1显示地调用XML的序列化

  1. var xml = XmlHelper.SerializeXml<List<MessageSendReturnDto>>(messageSendReturnDtos.ToList());

?

2.2添加Web引用时对象传输

在调用WCF时,添加Web引用,当做一个WebService使用时,就需要指定非string类型为IsRequired,因为WS的传输是基于SOAP,使用XML方式。

技术分享

?

生成的代码表明继承自WebService

  1. public partial class 某某某Service : System.Web.Services.Protocols.SoapHttpClientProtocol

?

事实上,在WebService中用实体传输的话,需要打上[Serializable]的标记。

?

文章来自:http://www.cnblogs.com/pengzhen/p/4535390.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3