XML序列化对象到字符串,从字符串反序列化
2008-10-23 08:08
274 查看
这几天项目中用到XML序列化,于是去查看相关资料发觉介绍中全部是使用了XML文件进行交互,可项目需要的是字符串交互,怎么办?那是否可以采用类似内存文件方式进行呢,经过查找发觉MemoryStream可以使用,代码如下:
public class MyObjectXml
{
#region Serialize
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public string Serialize(MyObject obj)
{
MemoryStream ms = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
xmlWriter.Indentation = 4;
xmlWriter.Formatting = Formatting.Indented;
XmlSerializer formatter = new XmlSerializer(typeof(MyObject));
formatter.Serialize(xmlWriter, obj);
xmlWriter.Close();
string xmlstring = Encoding.UTF8.GetString(ms.ToArray());
return xmlstring;
}
/// <summary>
///
/// </summary>
/// <param name="xmlstring"></param>
/// <returns></returns>
public MyObject DeSerialize(string xmlstring)
{
byte[] buffer = Encoding.UTF8.GetBytes(xmlstring);
MemoryStream ms = new MemoryStream(buffer);
XmlTextReader xmlReader = new XmlTextReader(ms);
XmlSerializer formatter = new XmlSerializer(typeof(MyObject));
MyObject obj = (MyObject)formatter.Deserialize(xmlReader);
xmlReader.Close();
return obj;
}
#endregion
}
public class MyObjectXml
{
#region Serialize
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public string Serialize(MyObject obj)
{
MemoryStream ms = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
xmlWriter.Indentation = 4;
xmlWriter.Formatting = Formatting.Indented;
XmlSerializer formatter = new XmlSerializer(typeof(MyObject));
formatter.Serialize(xmlWriter, obj);
xmlWriter.Close();
string xmlstring = Encoding.UTF8.GetString(ms.ToArray());
return xmlstring;
}
/// <summary>
///
/// </summary>
/// <param name="xmlstring"></param>
/// <returns></returns>
public MyObject DeSerialize(string xmlstring)
{
byte[] buffer = Encoding.UTF8.GetBytes(xmlstring);
MemoryStream ms = new MemoryStream(buffer);
XmlTextReader xmlReader = new XmlTextReader(ms);
XmlSerializer formatter = new XmlSerializer(typeof(MyObject));
MyObject obj = (MyObject)formatter.Deserialize(xmlReader);
xmlReader.Close();
return obj;
}
#endregion
}
相关文章推荐
- InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)
- XML字符串反序列化为对象
- 【C#】解决进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
- 序列化之对象,字符串,byte数组,XML之间的转换(一)
- 实体类对象与XML字符串的序列化和反序列化(示例)
- 获取任意可序列化对象的Xml字符串,方便在日志中查看任一所感兴趣的对象。
- InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)
- 将对象序列化成,并编码成UTF-8的字符串
- Kryo序列化对象为字符串(Base64加密)
- Mybatis的分页插件PageHelp:Page对象中的pageSize等属性无法序列化,无法转换为json字符串
- Java对象的XML序列化和反序列化 - (2)
- Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET)
- 使用JAXB实现JAVA对象和XML字符串的互相转换实例
- 对象序列化反序列化为xml
- C#中对象集合XML的序列化与反序列化
- 序列化及反序列化XML对象,List IEnumerator
- C#对象XML序列化(一):序列化方法和常用特性
- c#将对象序列化为字符串和将字符串反序列化为对象
- C# 使用XML序列化对象(二)
- js对象序列化成json字符串