2009-09-02 11 views
1

60mbファイルをXMLにシリアライズしたいのですが、システムのメモリが不足しています。 他に誰かがこの種の問題を抱えていましたか?60mbファイルのXmlシリアル化問題

誰かが私にこの問題の回避策を提案できますか?ここで

は、大規模な、私はあなたが最初のファイルにシリアル化を検討すべきだと思うことをストリームに方法

static public string Serialize(object obj) 
    { 
      string returnValue; 
      System.Xml.Serialization.XmlSerializer xmlWriter = new System.Xml.Serialization.XmlSerializer(obj.GetType()); 
      System.IO.StringWriter xmlOut = new System.IO.StringWriter(); 

      //this is where the problem is..... 
      xmlWriter.Serialize(xmlOut, obj); 
      //return the Serialized XML 
      returnValue = xmlOut.ToString(); 
      xmlOut.Close(); 
      return returnValue; 
    } 

答えて

0

です。シリアライズは、多くのメモリを必要とし、純粋にメモリ内で行うことはあなたを殺しています。

using(var file = new FileStream(...)) 
using(var streamWriter = new StreamWriter(file)) 
{ 
    xmlWriter.Serialize(streamWriter, obj); 
} 
+0

オブジェクトを取るときに、ドットネットシリアルライブラリを使用することはできません。この場合、メモリ内にあるオブジェクトが問題です。 –

+0

Ty:あなたのコメントは全く分かりません。彼は手元にあるオブジェクトを持っていて、それをXMLとして直列化したい。それはまさにXmlSerializerが構築されたものです。 –

+0

私は60mbのファイルをXMLに直列化したいと思っています。 "私は彼が大きなファイルを読んでそれを別のもの(この場合はXML)に解析したいと思っていたと思った。 –