.NET XML序列化助手类

use*_*584 2 .net xml-serialization

我从以前的StackOverflow问答中收集了一些信息

可以使用XmlSerializer类序列化以下项目:

  • 公共读/写属性和公共类的字段
  • 实现ICollection或IEnumerable的类
  • XmlElement对象
  • XmlNode对象
  • DataSet对象

我的问题是我们如何开发一个XmlSerialize Helper类,它将Generic Collection作为Xml序列化的参数.

Tho*_*que 7

public class XmlSerializationHelper
{
    public static void Serialize<T>(string filename, T obj)
    {
        XmlSerializer xs = new XmlSerializer(typeof(T));
        using (StreamWriter wr = new StreamWriter(filename))
        {
            xs.Serialize(wr, obj);
        }
    }

    public static T Deserialize<T>(string filename)
    {
        XmlSerializer xs = new XmlSerializer(typeof(T));
        using (StreamReader rd = new StreamReader(filename))
        {
            return (T)xs.Deserialize(rd);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

(它不是专门用于泛型集合,它适用于任何XML可序列化对象)

我不确定这是不是你想要的......如果没有,请详细说明你的需求

  • @Will:这就是为什么我说"任何**XML-serializable**对象"......字典不是XML可序列化的(除非它实现了IXmlSerializable,请看这个链接:http://weblogs.asp.net/pwelter34/archive /2006/05/03/444961.aspx) (2认同)