XML和实体类之间相互转换(序列化和反序列化)

XML文件与实体类的互相转换

 
通过我前面的几篇收藏的文章,今天来自己做个对实体类对象序列化和反序列化的汇总,以下代码是经过上面文章的参考,然后稍加改动。
 
using System;
using System.Collections.Generic;
using System.Text;
using System.IO; using System.Xml.Serialization; namespace CarWash.Station.Comm
{
public class XmlUtil
{
//序列化
//接收4个参数:srcObject(对象的实例),type(对象类型),xmlFilePath(序列化之后的xml文件的绝对路径),xmlRootName(xml文件中根节点名称)
//当需要将多个对象实例序列化到同一个XML文件中的时候,xmlRootName就是所有对象共同的根节点名称,如果不指定,.net会默认给一个名称(ArrayOf+实体类名称)
public static string SerializeToXml(object obj, Type type=null)
{
string str = ""; if (obj != null)
{
type = type != null ? type : obj.GetType();
using (MemoryStream ms = new MemoryStream())
{
using (StreamReader sr = new StreamReader(ms))
{
XmlSerializer xs = new XmlSerializer(type);
xs.Serialize(ms, obj);
ms.Position = ;
str = sr.ReadToEnd();
}
}
}
return str;
} public static byte[] SerializeToStream(object obj, Type type)
{
byte[] result = null; if (obj != null)
{
type = type != null ? type : obj.GetType();
using (MemoryStream ms = new MemoryStream())
{
ms.Position = ;
XmlSerializer xs = new XmlSerializer(type);
xs.Serialize(ms, obj);
result = ms.ToArray();
}
}
return result;
} //反序列化
//接收2个参数:xmlFilePath(需要反序列化的XML文件的绝对路径),type(反序列化XML为哪种对象类型)
public static object DeserializeFromXml(string xml, Type type)
{
object result = null;
if (!string.IsNullOrEmpty(xml))
{
using (StringReader sr = new StringReader(xml))
{
XmlSerializer xs = new XmlSerializer(type);
result = xs.Deserialize(sr);
}
}
return result;
} /// <summary>
/// 反序列化
/// </summary>
/// <param name="type"></param>
/// <param name="xml"></param>
/// <returns></returns>
public static object DeserializeFromStream(Stream stream, Type type)
{
object result = null;
if (stream != null)
{
XmlSerializer xmldes = new XmlSerializer(type);
result = xmldes.Deserialize(stream);
}
return result;
} } }

使用方式和实例我就不介绍,可看前面的几篇文章,他们都有比较详细的说明。

以上文字纯属个人总结,全部手动输入,如果引用请注明出处。

总结:实体类和(XML或二进制)之间相互转(序列化和反序列化)的更多相关文章

  1. 利用JAXB实现java实体类和xml互相转换

    1.应用场景 在使用WebService实现数据上传下载,数据查询时,可以利用JAXB实现java实体类和xml互相转换 2.Demo 2.1 student.java 实体类,包含list(set同 ...

  2. C#实体类生成XML与XML Schema文档

    一.实体类生成XML private void CreateXML() { Type[] objType = DBEntityRegst(); foreach (var item in objType ...

  3. 简单实体类和xml文件的相互转换

    最近写一个题目,要求将一组员工实体类转换成xml文件,或将xml文件转换成一组实体类.题目不难,但写完感觉可以利用泛型和反射将任意一个实体类和xml文件进行转换.于是今天下午立马动手 试了下,做了个简 ...

  4. 使用C#实现实体类和XML相互转换

    一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T& ...

  5. 实现实体类和Xml相互转化

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...

  6. C#实体类与XML相互转换

    1.实体类与XML相互转换 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化. 把XML转换成相应的实体类,需要使用到XmlSerializer类的De ...

  7. C# 实现实体类和Xml转换

    一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T& ...

  8. 实体类转xml

    看项目中需要实体类转xml,大家是拼接的.感觉可以利用反射实现.于是写了下 代码如下 package com.kevin.util; import org.springframework.util.O ...

  9. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

随机推荐

  1. hadoop03---nginx+keepalived

    1.1.反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...

  2. 【leetcode刷题笔记】Text Justification

    Given an array of words and a length L, format the text such that each line has exactly L characters ...

  3. 主攻ASP.NET.4.5 MVC4.0之重生:二维码生成和谷歌二维码

    使用ThoughtWorks.QRCode.Codec 效果图 using ThoughtWorks.QRCode.Codec; 非原创代码 public void code(string id) { ...

  4. 高通LCD驱动调试

    本文转载自:http://www.itgo.me/a/x6305658852004979994/lcd%20qcom 来自 :http://blog.csdn.net/dacaozuo/article ...

  5. c# 图片 与 BASE64 字符串 互相转换。

    using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System. ...

  6. FreeBSD 安装过程

    FreeBSD安装步骤: 回车 按默认回车 输入服务器的计算机名 去掉games,加上src安装如下图 Lib32 ports src这三项一定要安装上 回车 选择Manual 进入以后点create ...

  7. spark学习6(Centos下Scala2.11.4安装)

    Centos下Scala安装 上传Scala到/usr/scala目录下 [root@spark1 scala]# chmod u+x scala-2.11.4.tgz #修改权限 [root@spa ...

  8. Java -- JDBC 获取数据库自动 生成的主键值

    public class Demo4 { /* create table test1 ( id int primary key auto_increment, name varchar(20) ); ...

  9. Spring Boot入门——JPA

    JPA最大的特点就是可以根据@Entity自动创建你数据库表,用户只需要声明持久层的接口,不需要实现该接口 1.JPA概念 JPA全称Java Persistence API,JPA通过JDK5.0注 ...

  10. tensorflow实现Minist手写体识别

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #下载MINIST数据集mnist ...