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方式。

DataMember IsRequired属性

 

生成的代码表明继承自WebService

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

 

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

 

上一篇:Unable to locate package错误


下一篇:bash小技巧