0

我将DLL信息存储到以下类中:

[XmlRoot("Modules")]
[XmlInclude(typeof(Module))]
public class Modules : List<Module> {}

[XmlType("Module")]
public class Module
{
  [XmlIgnore()]
  public bool Selected { get; set; }
  [XmlElement()]
  public string Name { get; set; }
  [XmlElement()]
  public string Version { get; set; }
  [XmlElement()]
  public byte[] Binary;
}

Module当我使用以下代码序列化列表中的少数类时,这很好。

XmlSerializer serializer = new XmlSerializer(typeof(Modules));
using (StringWriter sw = new StringWriter())
{
  serializer.Serialize(sw, ugModules.DataSource);
}

但是,我的问题出现在列表中时,我有 113 个项目 - 现在显然这是相当多的二进制数据。

我遇到了一个System.OutOfMemory例外,我似乎记得必须增加某种阈值,但我找不到正确的属性或方法来解决我必须更改的内容。

我将其序列化为 XML 以将 XML 传递到 SQL 中,然后将信息存储在表中,只是为了了解我正在做什么。

我如何绕过异常?有一个更好的方法吗?

4

0 回答 0