zoukankan      html  css  js  c++  java
  • 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]的标记。

     

  • 相关阅读:
    Spring MVC笔记(二) Hello World实例
    Spring MVC笔记(一) Spring MVC概述
    正则表达式在python中的应用
    Spring与Ibatis整合入门
    Spark GraphX的函数源码分析及应用实例
    Python爬虫获取迅雷会员帐号
    Linux Shell编程学习笔记
    Hadoop在linux下无法启动DataNode解决方法
    Ubuntu中使用终端运行Hadoop程序
    Hadoop2.6.0在Ubuntu Kylin14.04上的配置
  • 原文地址:https://www.cnblogs.com/pengzhen/p/4535390.html
Copyright © 2011-2022 走看看