1
编写XML在C#我想要得到一个大的数据集的XML字符串:OutOfMemoryException异常试图从数据集
private string GetXmlFromDecomposedPortfolio(string dataSetName, DecomposedPortfolio ptf)
{
StringWriter writer = new StringWriter();
System.Data.DataSet ds = new System.Data.DataSet(dataSetName);
ds.Tables.Add(ptf.Security.Copy());
ds.WriteXml((TextWriter)writer, XmlWriteMode.IgnoreSchema);
return writer.ToString();
}
但我有例外:
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity)
at System.Text.StringBuilder.GetNewString(String currentString, Int32 requiredLength)
at System.Text.StringBuilder.Append(Char value) at System.IO.StringWriter.Write(Char value)
at System.Xml.XmlTextWriter.WriteStartElement(String prefix, String localName, String ns)
at System.Data.DataTextWriter.WriteStartElement(String prefix, String localName, String ns)
at System.Data.XmlDataTreeWriter.XmlDataRowWriter(DataRow row, String encodedTableName)
at System.Data.XmlDataTreeWriter.Save(XmlWriter xw, Boolean writeSchema)
at System.Data.DataSet.WriteXml(XmlWriter writer, XmlWriteMode mode)
at System.Data.DataSet.WriteXml(TextWriter writer, XmlWriteMode mode)
at Decompose.Library.Render.GetXmlFromDecomposedPortfolio(String dataSetName, DecomposedPortfolio ptf)
at Decompose.Library.Render.SavePE()
at Decompose.Library.WorkFlow.ProcessBatch()
任何建议?
[使用System.Data或System.Xml名称中的类的受管代码解决方案在处理大型数据集时可能会遇到System.OutOfMemoryException](http://blogs.msdn.com/b/vsofficedeveloper/archive/2008 /10/10/stringbuilder-outofmemoryexception.aspx)。 –