js_duan 2015-04-17 07:49 采纳率: 0%
浏览 2460

C# 请教XML序列化时,内存错误问题如何解决

环境C#4.5 E5 16G内存
代码:
try
{
CommonHelper.CGCollect();
string xml = XmlHelper.XmlSerialize(listKeyWords, Encoding.Default);
Mutex m = new Mutex();
if (!string.IsNullOrEmpty(xml))
{
DocHelper.writeXC(xml, string.Format("{0}\{1}", ConfigurationInfo._KEYWORDSPATH, pathName), FileMode.OpenOrCreate, m);
}
}

public static string XmlSerialize(object o, Encoding encoding)
{

        using (MemoryStream stream = new MemoryStream())
        {
            XmlSerializeInternal(stream, o, encoding);

            stream.Position = 0;
            using (StreamReader reader = new StreamReader(stream, encoding))
            {
                return reader.ReadToEnd();
            }
        }
    }

错误信息:

System.InvalidOperationException: 生成 XML 文档时出错。 ---> System.OutOfMemoryException: 引发类型为“System.OutOfMemoryException”的异常。
在 System.IO.MemoryStream.set_Capacity(Int32 value)
在 System.IO.MemoryStream.EnsureCapacity(Int32 value)
在 System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
在 System.Xml.XmlEncodedRawTextWriter.EncodeChars(Int32 startOffset, Int32 endOffset, Boolean writeAllToStream)
在 System.Xml.XmlEncodedRawTextWriter.FlushBuffer()
在 System.Xml.XmlEncodedRawTextWriter.RawText(Char* pSrcBegin, Char* pSrcEnd)
在 System.Xml.XmlEncodedRawTextWriter.RawText(String s)
在 System.Xml.XmlEncodedRawTextWriter.WriteStartAttribute(String prefix, String localName, String ns)
在 System.Xml.XmlEncodedRawTextWriterIndent.WriteStartAttribute(String prefix, String localName, String ns)
在 System.Xml.XmlWellFormedWriter.WriteStartAttribute(String prefix, String localName, String namespaceName)
在 System.Xml.Serialization.XmlSerializationWriter.WriteAttribute(String localName, String ns, String value)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write7_WordsareadataModelS(String n, String ns, WordsareadataModelS o, Boolean isNullable, Boolean needType)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write8_WordsareadataModel(String n, String ns, WordsareadataModel o, Boolean isNullable, Boolean needType)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write9_KeyWords(String n, String ns, KeyWords o, Boolean isNullable, Boolean needType)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write10_ArrayOfKeyWords(Object o)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o)
在 Lanwatcher.Tools.XmlHelper.XmlSerializeInternal(Stream stream, Object o, Encoding encoding) 位置

 预计序列化后数据大小1G左右 

 这个问题如何解决呢?
  • 写回答

1条回答 默认 最新

  • threenewbee 2015-04-17 10:39
    关注

    生成什么xml要生成这么大?

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?