C#では、大きなデータセットからxml文字列を取得しようとしています。
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()
なにか提案を?