码迷,mamicode.com
首页 > 其他好文 > 详细

DataMember IsRequired属性

时间:2015-05-28 12:34:26      阅读:405      评论:0      收藏:0      [点我收藏+]

标签:

?

?

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]的标记。

?

DataMember IsRequired属性

标签:

原文地址:http://www.cnblogs.com/pengzhen/p/4535390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!