代码之家  ›  专栏  ›  技术社区  ›  mko

反序列化XML文件时c#中出现OutOfMemoryException

  •  1
  • mko  · 技术社区  · 10 年前

    我在c#中有一个对象需要保存为文件并重新使用。

    所以基本上,我现在所做的是将类序列化为xml,并将其保存为文件。该文件大约为100MB。

    现在我遇到的问题是,当我想将文件反序列化为类时,我会遇到OutOfMemoryException。

    我正在使用以下代码:

    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.Load(file);
    
    Deserialize<T>(xmlDocument.InnerXml);
    
     public static T Deserialize<T>(string xmlContent)
     {
         var inStream = new StringReader(xmlContent);
         var ser = new XmlSerializer(typeof(T));
         return (T)ser.Deserialize(inStream);
     }
    
    1 回复  |  直到 10 年前
        1
  •  2
  •   GeorgDangl    10 年前

    下面是我的注释在代码中的样子:

        public static T Deserialize<T>(string Filepath)
        {
            using (FileStream FStream = new FileStream(Filepath, FileMode.Open))
            {
                var Deserializer = new XmlSerializer(typeof(T));
                return (T)Deserializer.Deserialize(FStream);
            }
        }