我将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 中,然后将信息存储在表中,只是为了了解我正在做什么。
我如何绕过异常?有一个更好的方法吗?