xml序列化帮助类

using System.IO;
using System.Xml;
using System.Xml.Serialization;
 public class XmlHelper
{
public static T Deserialize<T>(String file)
{
if (!File.Exists(file))
{
throw new FileNotFoundException();
} T obj;
using (FileStream fs = new FileStream(file, FileMode.Open))
{
XmlSerializer xml = new XmlSerializer(typeof(T));
obj = (T)xml.Deserialize(fs);
fs.Close();
}
return obj;
} #region 序列化
/// <summary>
/// 序列化
/// </summary>
/// <param name="type">类型</param>
/// <param name="obj">对象</param>
/// <returns></returns>
public static string Serializer<T>(object obj)
{
using (MemoryStream stream = new MemoryStream())
{
XmlSerializer xml = new XmlSerializer(typeof(T));
//序列化对象
xml.Serialize(stream, obj);
stream.Position = ;
using (StreamReader sr = new StreamReader(stream))
{
string str = sr.ReadToEnd();
return str;
}
}
}
public static void Serializer<T>(String saveFile, T obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (FileStream stream = new FileStream(saveFile, FileMode.Create))
{
serializer.Serialize(stream, obj);
}
}
/// <summary>
/// 将一个对象序列化为XML字符串
/// </summary>
/// <param name="obj">要序列化的对象</param>
/// <param name="encoding">编码方式</param>
/// <returns>序列化产生的XML字符串</returns>
public static void XmlSerialize(object obj, string xml, Encoding encoding)
{
if (encoding == null)
throw new ArgumentNullException("encoding"); using (FileStream stream = new FileStream(xml, FileMode.Create))
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = encoding;
settings.Indent = true;//缩进和换行
using (XmlWriter writer = XmlWriter.Create(stream, settings))
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(writer, obj);
}
}
} #endregion
}

参考

Xml 序列化和反序列化的更多相关文章

  1. XML 序列化与反序列化

    XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param na ...

  2. XmlSerializer 对象的Xml序列化和反序列化

    http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html 这篇随笔对应的.Net命名空间是System.Xm ...

  3. C#的XML序列化及反序列化

    webservice在工作中用到的很多,基本都是以XML格式问通讯内容,其中最关键的就是XML串的序列化及反序列化. XML的运用中有两种信息传递,一种为XML的请求信息,另一种为返回信息,要运用XM ...

  4. .NET XML序列化与反序列化

    闲着没事,写了两个通用的XML序列化与反序列化的方法. 贴出来当作笔记吧! /// <summary> /// XML序列化 /// </summary> /// <ty ...

  5. XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

    这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间.   为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中 ...

  6. c# XML序列化与反序列化

    c# XML序列化与反序列化 原先一直用BinaryFormatter来序列化挺好,可是最近发现在WinCE下是没有办法进行BinaryFormatter操作,很不爽,只能改成了BinaryWrite ...

  7. Xml序列化、反序列化帮助类

    之前从网络上找了一个Xml处理帮助类,并整理了一下,这个帮助类针对Object类型进行序列化和反序列化,而不需要提前定义Xml的结构,把它放在这儿供以后使用 /// <summary> / ...

  8. Windows phone 之XML序列化与反序列化

    为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...

  9. C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化

    这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...

  10. C#实现接口xml序列化与反序列化

    C#实现接口xml序列化与反序列化   C#中接口无法被xml序列化,提示不支持.百度和bing也搜不到,只好自己动手写了 原理上肯定支持,.Net自己的xml序列化有一个IXmlSerializab ...

随机推荐

  1. 配置Maven从私服下载构件

    --------------------siwuxie095                                     配置 Maven 从私服下载构件         从 Nexus ...

  2. 中文路径读取乱码,json乱码

    strPath = 'E:\新建文件夹' #含有中文的路径,使用unicode函数转换. strPath = unicode(strPath , "utf8") 参考:http:/ ...

  3. 836. Rectangle Overlap 矩形重叠

    [抄题]: A rectangle is represented as a list [x1, y1, x2, y2], where (x1, y1) are the coordinates of i ...

  4. Developing ADF PageTemplates

    Developing ADF PageTemplates In this hands-on, you learn how to create a page template and use this ...

  5. c语言使用指针实现模拟java/c# string.concat字符串串联方法

    #include <stdio.h> void _strcat(char *, const char *); int main(void) { char source[] ="V ...

  6. mvc 封装控件使用mvcpager

    具体使用如下: 前台部分: @RenderPage("~/Views/Controls/_Pagebar.cshtml", new PageBar { pageIndex = Mo ...

  7. htmlparser学习(原创)

    --thumbelina.jar  这是一个演示图片搜索和显示的小程序JFrame Preferences.userNodeForPackage(getClass());  根据传入的class所在包 ...

  8. tomcat6.0 配置不同端口访问不同项目

    <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to the Apache Software Foundation (ASF ...

  9. C语言基础第二次作业

    PTA第一次作业 题目7-1  统计学生成绩 1.实验代码 #include<stdio.h> int main(void){ ,B=,C=,D=,E=,f; scanf("%d ...

  10. 2018.07.04 POJ 1654 Area(简单计算几何)

    Area Time Limit: 1000MS Memory Limit: 10000K Description You are going to compute the area of a spec ...