一个可序列化的C#对象,如何转成一个XML格式的文件或字符串
2012-08-22 09:12
387 查看
序列化或反序列化成一个字符串:
方法一:
序列化:
反序列化:
方法二:
如果要序列化到一个文件,则使用FileStream就可以了
如:
string strFile = @"c:/book.xml";
using (FileStream fs = new FileStream(strFile, FileMode.Create))
{
XmlSerializer formatter = new XmlSerializer(typeof(T));
formatter.Serialize(fs, entity);
}
附:其实还可以直接用SringWriter
StringBuilder sb = new StringBuilder();
System.IO.StringWriter writer = new System.IO.StringWriter(sb);
XmlSerializer formatter = new XmlSerializer(typeof(T));
formatter .Serialize(writer,entity );
方法一:
序列化:
public static string XMLSerialize<T>(T entity) { StringBuilder buffer = new StringBuilder(); XmlSerializer serializer = new XmlSerializer(typeof(T)); using (TextWriter writer = new StringWriter(buffer)) { serializer.Serialize(writer, entity); } return buffer.ToString(); }
反序列化:
public static T DeXMLSerialize<T>(string xmlString) { T cloneObject = default(T); StringBuilder buffer = new StringBuilder(); buffer.Append(xmlString); XmlSerializer serializer = new XmlSerializer(typeof(T)); using (TextReader reader = new StringReader(buffer.ToString())) { Object obj = serializer.Deserialize(reader); cloneObject = (T)obj; } return cloneObject; }
方法二:
/// <summary> /// 对象序列化成 XML String /// </summary> public static string XmlSerialize<T>(T obj) { string xmlString = string.Empty; XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); using (MemoryStream ms = new MemoryStream()) { xmlSerializer.Serialize(ms, obj); xmlString = Encoding.UTF8.GetString(ms.ToArray()); } return xmlString; } /// <summary> /// XML String 反序列化成对象 /// </summary> public static T XmlDeserialize<T>(string xmlString) { T t = default(T); XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); using (Stream xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString))) { using (XmlReader xmlReader = XmlReader.Create(xmlStream)) { Object obj = xmlSerializer.Deserialize(xmlReader); t = (T)obj; } } return t; }
如果要序列化到一个文件,则使用FileStream就可以了
如:
string strFile = @"c:/book.xml";
using (FileStream fs = new FileStream(strFile, FileMode.Create))
{
XmlSerializer formatter = new XmlSerializer(typeof(T));
formatter.Serialize(fs, entity);
}
附:其实还可以直接用SringWriter
StringBuilder sb = new StringBuilder();
System.IO.StringWriter writer = new System.IO.StringWriter(sb);
XmlSerializer formatter = new XmlSerializer(typeof(T));
formatter .Serialize(writer,entity );
相关文章推荐
- 一个可序列化的C#对象,如何转成一个XML格式的文件或字符串【转】
- 一个可序列化的C#对象,如何转成一个XML格式的文件或字符串(转)
- 一个经过改良的XMLHelper(包含了序列化,反序列化,创建xml文件,读取节点,C#对象与xml文件的相互转换等等。)
- Java序列化 如何把多个对象存储在一个文件中
- java如何将一个序列化对象添加到压缩文件中
- java如何在文件中读取一个字符串并创建以这个字符为名字的类的对象
- Java序列化 如何把多个对象存储在一个文件中
- 如何将多个对象序列化到同一个文件和反序列化
- C#控制台基础 filestream将string字符串写入一个新建的txt文件中
- C#把对象序列化成二进制文件
- C#实现对象的Xml格式序列化及反序列化
- 在C#中如何用字符串来替代对象的名称
- 如何根据一个字符串去查找同名的对象?
- 创建一个强名称密钥文件+ 如何在 Visual C# .NET 中将程序集安装到全局程序集缓存中
- fastJson如何序列化一个包含list对象的Map对象,如Map<String,List<T>>类型的对象
- 编写C#代码时,一个字符串太长如何换行
- 前端js如何生成一个对象,并转化为json字符串
- c#将对象序列化为字符串和将字符串反序列化为对象
- 如何将org.w3c.dom.Element xml节点对象转化成XML格式的string字符串
- c#将对象序列化为字符串和将字符串反序列化为对象