总结:实体类和(XML或二进制)之间相互转(序列化和反序列化)
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或二进制)之间相互转(序列化和反序列化)的更多相关文章
- 利用JAXB实现java实体类和xml互相转换
1.应用场景 在使用WebService实现数据上传下载,数据查询时,可以利用JAXB实现java实体类和xml互相转换 2.Demo 2.1 student.java 实体类,包含list(set同 ...
- C#实体类生成XML与XML Schema文档
一.实体类生成XML private void CreateXML() { Type[] objType = DBEntityRegst(); foreach (var item in objType ...
- 简单实体类和xml文件的相互转换
最近写一个题目,要求将一组员工实体类转换成xml文件,或将xml文件转换成一组实体类.题目不难,但写完感觉可以利用泛型和反射将任意一个实体类和xml文件进行转换.于是今天下午立马动手 试了下,做了个简 ...
- 使用C#实现实体类和XML相互转换
一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T& ...
- 实现实体类和Xml相互转化
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...
- C#实体类与XML相互转换
1.实体类与XML相互转换 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化. 把XML转换成相应的实体类,需要使用到XmlSerializer类的De ...
- C# 实现实体类和Xml转换
一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T& ...
- 实体类转xml
看项目中需要实体类转xml,大家是拼接的.感觉可以利用反射实现.于是写了下 代码如下 package com.kevin.util; import org.springframework.util.O ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
随机推荐
- UI控件之UIPickerView的协议方法
UIPickerView:选择视图,父类是UIView UIPickerView *pickerView=[[UIPickerView alloc]initWithFrame:CGRectMake(1 ...
- 用js来实现那些数据结构 第一章
在开始正式的内容之前,不得不说说js中的数据类型和数据结构,以及一些比较容易让人混淆的概念.那么为什么要从数组说起?数组在js中是最常见的内存数据结构,数组数据结构在js中拥有很多的方法,很多初学者记 ...
- 获取电脑连接WiFi的信息
在cmd中执行如下命令,即可查看到所有连接过的WiFi信息 for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show ...
- php数组函数-array_rand()
array_rand()函数返回数组中的一个随机键名,或者如果指定函数返回键名不止一个,则返 回一个包含随机键名的数组. array_rand(array,number); array:必需.规定数组 ...
- java中如何将非整数保留到小数点后指定的位数
- .NET 中如何判断文件与目录
FileInfo fileInfo = new FileInfo(pth); if ((fileInfo.Attributes & FileAttributes.Directory) != 0 ...
- 【计算机网络】OSI模型,TCPIP模型
今天给大家分享的是两种模型的主要区别,夜视比较容易混淆的地方.我尽力用图形的方式来说问题,这样比较好理解~ (PS:画图真的不会,正在认真学,希望多多包含:)) 一.二者的模型对比 (这个图有点丑.. ...
- EF Code-First 学习之旅
什么是Code-First 基本工作流: 写好应用程序的领域类和上下文类→配置领域类的额外映射→运行程序→Code-First API创建新的数据库或与现有数据库对应→添加种子数据到数据库中测试
- Centos 查看版本
# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
- svg_path
1. path 的 d属性中,M的大/小写貌似不影响图形显示效果(至少现在[20160108]我测试下来是这样[chrome 版本 47.0.2526.80 m]):L/H/V 的大小写 是影响图形显 ...