iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >.NET中XML序列化和反序列化常用类和属性是什么
  • 466
分享到

.NET中XML序列化和反序列化常用类和属性是什么

2023-06-29 19:06:16 466人浏览 安东尼
摘要

这篇“.net中XML序列化和反序列化常用类和属性是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“.NET中XML序列化

这篇“.net中XML序列化和反序列化常用类和属性是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“.NET中XML序列化和反序列化常用类和属性是什么”文章吧。

    序列化和反序列化是指什么?

    序列化(seriallization): 将对象转化为便于传输的数据格式, 常见的序列化格式:二进制格式,字节数组JSON字符串,xml字符串。
    反序列化(deseriallization):将序列化的数据恢复为对象的过程。

    XmlSerializer类

      该类用一种高度松散耦合的方式提供串行化服务。你的类不需要继承特别的基类,而且它们也不需要实现特别的接口。相反,你只需在你的类或者这些类的公共域以及读/写属性里加上自定义的特性。XmlSerializer通过反射机制读取这些特性并用它们将你的类和类成员映射到xml元素和属性(在对象和 XML 文档之间进行序列化和反序列化操作)。

    .NET-XML序列化和反序列化简单示例代码

    using System.IO;using System.Xml.Serialization; namespace Practices.Common{    public class SimpleSerializer    {        /// <summary>        /// Model实体对象序列化为XML字符串        /// </summary>        /// <typeparam name="T">对象类型</typeparam>        /// <param name="t">Model实体对象</param>        /// <returns></returns>        public static string SerializeXMLL<T>(T t)        {            using (StringWriter sw = new StringWriter())            {                XmlSerializer xmlSerializer = new XmlSerializer(t.GetType());                xmlSerializer.Serialize(sw, t);                return sw.ToString();            }        }         /// <summary>        /// XML反序列化为对象        /// </summary>        /// <typeparam name="T">对象类型</typeparam>        /// <param name="xml">xml字符串</param>        /// <returns></returns>        public static T Deserialize<T>(string xml)        {            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));            StringReader stringReader = new StringReader(xml);            return (T)xmlSerializer.Deserialize(stringReader);        }     }}

    XmlTypeAttribute类

       该类主要控制当属性目标由XML序列化时生成的XML节点。

    应用示例

    /// <summary>/// Envelope/// </summary>[XmlType(TypeName = "envelope")]public class CityRes{    public Header header { get; set; }     public Response response { get; set; } }

    XmlElementAttribute类

       该类用于指示公共字段或属性在XML序列化或反序列化包含它们的对象时表示XML元素。

    应用示例

    /// <summary>/// Envelope/// </summary>public class CityRes{    /// <summary>    /// header    /// </summary>    [XmlElement("header")]    public Header header { get; set; }     /// <summary>    /// response    /// </summary>    [XmlElement("response")]    public Response response { get; set; } }

    XmlAttributeAttribute类

      该类指定XML序列化必须将类成员序列化为XML属性。

    应用示例

    /// <summary>/// Version/// </summary>public class Version{    /// <summary>    /// port    /// </summary>    [XmlAttribute("port")]    public string port { get; set; }     /// <summary>    /// host    /// </summary>    [XmlAttribute("host")]    public string host { get; set; }     /// <summary>    /// text    /// </summary>    [XmlAttribute("text")]    public string text { get; set; } }

    XmlArrayAttribute类

      该类主要用于XML元素数组的应用(相当于就是集合的声明)。

    应用示例

    [XmlArray]public Item []Items{   get{return items;}   set{items = value;}}

    XmlTextAttribute类

      当Xml文档序列化或反序列化时使用该特性修饰的成员会作为XML文本处理。

    应用示例

    [System.Xml.Serialization.XmlTextAttribute()]public string[] Text{    get    {        return this.textField;    }    set    {        this.textField = value;    }}

    XmlIgnoreAttribute类

       指示该特性修饰的对象在Xml序列化时不会序列化该特性指定的元素。

    应用示例

    public class TeamGroup{    [XmlIgnore]   public string Comment;    public string GroupName;}

    用来控制XML序列化的属性汇总

    通过将下表中的特性应用于类和类成员,可以控制 XmlSerializer 序列化或反序列化该类的实例的方式。 若要了解这些属性如何控制 XML 序列化,请参阅使用属性控制 XML 序列化。

    特性适用对象指定
    XmlAnyAttributeAttribute公共字段、属性、参数或返回 XmlAttribute 对象数组的返回值。反序列化时,将会使用 XmlAttribute 对象填充数组,而这些对象代表对于架构未知的所有 XML 特性。
    XmlAnyElementAttribute公共字段、属性、参数或返回 XmlElement 对象数组的返回值。反序列化时,将会使用 XmlElement 对象填充数组,而这些对象代表对于架构未知的所有 XML 元素。
    XmlArrayAttribute公共字段、属性、参数或返回复杂对象的数组的返回值。数组成员将作为 XML 数组的成员生成。
    XmlArrayItemAttribute公共字段、属性、参数或返回复杂对象的数组的返回值。可以插入数组的派生类型。 通常与 XmlArrayAttribute 一起应用。
    XmlAttributeAttribute公共字段、属性、参数或返回值。成员将作为 XML 属性进行序列化。
    XmlChoiceIdentifierAttribute公共字段、属性、参数或返回值。可以使用枚举进一步消除成员的歧义。
    XmlElementAttribute公共字段、属性、参数或返回值。字段或属性将作为 XML 元素进行序列化。
    XmlEnumAttribute作为枚举标识符的公共字段。枚举成员的元素名称。
    XmlIgnoreAttribute公共属性和公共字段。序列化包含类时,应该忽略属性或字段。
    XmlIncludeAttribute公共派生类声明,以及 WEB 服务描述语言 (WSDL) 文档的公共方法的返回值。生成要在序列化时识别的架构时,应该将该类包括在内。
    XmlRootAttribute公共类声明。控制视为 XML 根元素的属性目标的 XML 序列化。 使用该属性可进一步指定命名空间和元素名称。
    XmlTextAttribute公共属性和公共字段。属性或字段应该作为 XML 文本进行序列化。
    XmlTypeAttribute公共类声明。XML 类型的名称和命名空间。

    以上就是关于“.NET中XML序列化和反序列化常用类和属性是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: .NET中XML序列化和反序列化常用类和属性是什么

    本文链接: https://www.lsjlt.com/news/326223.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • .NET中XML序列化和反序列化常用类和属性是什么
      这篇“.NET中XML序列化和反序列化常用类和属性是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“.NET中XML序列化...
      99+
      2023-06-29
    • .NET中XML序列化和反序列化常用类和属性小结
      目录序列化和反序列化是指什么?XmlSerializer类.NET-XML序列化和反序列化简单示例代码XmlTypeAttribute类应用示例XmlElementAttribute...
      99+
      2024-04-02
    • .如何理解.NET对象的XML序列化和反序列化
      .如何理解.NET对象的XML序列化和反序列化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。.NET对象的XML序列化和反序列化是如何实现的呢?通过下面实例中的...
      99+
      2023-06-17
    • PHP中的序列化和反序列化是什么
      这篇“PHP中的序列化和反序列化是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“PHP中的序列化和反序列化是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让...
      99+
      2023-06-06
    • Python序列化和反序列化的作用是什么
      Python序列化和反序列化的作用是实现数据的持久化存储和传输。序列化是将Python对象转换为字节流或字符串的过程,使得对象可以被...
      99+
      2023-08-14
      python
    • golang序列化和反序列化的方法是什么
      Go语言中序列化和反序列化可以通过将数据转换为字节流格式来实现,常见方法有“JSON序列化和反序列化”、“XML序列化和反序列化”、“gob序列化和反序列化”和“Protocol Buffers序列化和反序列化”四种:1、使用“json.M...
      99+
      2023-12-18
      golang反序列化 golang序列化 Golang go语言
    • Java对象的序列化和反序列化是什么
      这篇文章主要介绍了Java对象的序列化和反序列化是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java对象的序列化和反序列化是什么文章都会有所收获,下面我们一起来看看吧。Java 对象的序列化和反序列化是...
      99+
      2023-07-06
    • java序列化和反序列化有什么作用
      Java的序列化和反序列化主要用于以下几个方面:1. 数据持久化:可以将Java对象转化为字节序列,并将其写入文件或者数据库,从而实...
      99+
      2023-09-25
      java
    • Python数据序列化和反序列化指的是什么
      Python数据序列化是将内存中的数据结构转换为字节流或字符串的过程,以便于存储或传输。反序列化则是将序列化后的数据转换回原始的数据...
      99+
      2024-03-12
      Python
    • 常见的Golang序列化和反序列化技巧
      Golang中常用的序列化和反序列化技术,需要具体代码示例 一、序列化和反序列化的概念 序列化是将数据结构或对象转换为二进制或其他格式的过程,以便可以在网络上传输或保存到持久存储中。反序列化则是将序列化后的数...
      99+
      2024-01-29
    • springboot序列化和反序列化怎么定义
      在Spring Boot中,序列化和反序列化可以通过以下方式进行定义:1. 实现Serializable接口:在需要进行序列化和反序...
      99+
      2023-08-14
      springboot
    • Golang中Json的序列化和反序列化怎么使用
      这篇文章主要介绍“Golang中Json的序列化和反序列化怎么使用”,在日常操作中,相信很多人在Golang中Json的序列化和反序列化怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang中Js...
      99+
      2023-06-30
    • 如何使用Python中的序列化和反序列化
      如何使用Python中的序列化和反序列化,需要具体代码示例序列化和反序列化是在数据存储和传输过程中非常重要的概念。在Python中,我们可以使用pickle模块来实现序列化和反序列化操作。本文将详细介绍如何使用Python中的pickle模...
      99+
      2023-10-22
      Python 序列化 反序列化
    • Golang中Json的序列化和反序列化的使用
      目录 JSON:创建格式:基本数据类型序列化:map序列化:切片序列化:反序列化为结构体:反序列化为map:反序列化为切片: JSON: JSON(JavaScr...
      99+
      2024-04-02
    • java中序列化与反序列化的作用是什么
      Java中的序列化和反序列化是用来实现对象的持久化存储和网络传输的机制。序列化的作用:1. 对象持久化存储:将Java对象转换为字节...
      99+
      2023-09-15
      java
    • Java中如何实现序列化和反序列化
      本篇文章给大家分享的是有关Java中如何实现序列化和反序列化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。序列化序列化:将对象转换为二进制序列在网络中传输或保存到磁盘反序列化:...
      99+
      2023-06-15
    • 使用C#怎么对XML对象进行序列化和反序列化操作
      使用C#怎么对XML对象进行序列化和反序列化操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。public class XMLUtil{&n...
      99+
      2023-06-06
    • python对象序列化和反序列化有什么不同
      Python对象序列化和反序列化是将Python对象转换为可存储或传输的格式,以及将存储或传输的数据重新转换为Python对象的过程...
      99+
      2023-09-13
      python
    • MessagePack和System.Text.Json序列化和反序列化性能及对比分析
      本博客将测试MessagePack 和System.Text.Json 序列化和反序列化性能项目文件: Program.cs代码: using BenchmarkDotNet.Ru...
      99+
      2023-01-28
      MessagePack 和System.Text.Json 序列化和反序列化 MessagePack 和System.Text.Json 序列化和反序列化
    • Java 中对象的序列化和反序列化有什么区别
      本篇文章给大家分享的是有关Java 中对象的序列化和反序列化有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。主要内容如下:简洁的代码实现序列化实现的基本算法两种特殊的情...
      99+
      2023-05-31
      反序列化 java 序列化
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作