質問

うserialize、XmlDocumentるファイルです。のXmlDocumentは広;しかし、デバッガできますのInnerXml財産はすべてのXML blobでな切り捨てます。

こちらのコードを書き込むという私のXmlDocumentオブジェクトファイル:

// Write that string to a file.
var fileStream = new FileStream("AdditionalData.xml", FileMode.OpenOrCreate, FileAccess.Write);
xmlDocument.WriteTo(new XmlTextWriter(fileStream, Encoding.UTF8) {Formatting = Formatting.Indented});
fileStream.Close();

ファイルのファイルの作ここだけ書き出しを行う5,760--これは実際に切り捨てのタグ!

誰でもそのアイデアはなぜこのことは短いので、これから

更新: この問題です。また、XMLテキストライターを閉じる前にファイルのストリーム!何たる不覚!

役に立ちましたか?

解決

てXmlTextWriterが正しく閉じられていませんでした。 Woops!

他のヒント

あなたは閉じる前にストリームをフラッシュしようとすることができます。 AUTOFLUSHがtrueの場合、私はそれがとにかく閉じる()上のフラッシュを取得だと思うが、それは価値があるかもしれないショットます:

// Write that string to a file. 
var fileStream = new FileStream("AdditionalData.xml", FileMode.OpenOrCreate, FileAccess.Write); 
xmlDocument.WriteTo(new XmlTextWriter(fileStream, Encoding.UTF8) {Formatting = Formatting.Indented}); 
fileStream.Flush();
fileStream.Close(); 

これの道道道...元の質問の後に頼まれたが、それはGoogleの検索結果に現れた。

私は今日類似した何かを経て、(この混乱に直面している次の不幸な魂のために)私の答えを共有したいと思っています。

Iが一定の間隔で(FS)をメモリ内のデータを保持し、その後FILESTREAMにフラッシュするのMemoryStream(MS)とのStreamWriter(SW)を使用しています。

だから私はやっていた。

    sw.WriteLine(DateTime.Now.ToString("u").Replace("Z", "") & ":  " & entry)

そして、すべてが言わおよび行われた後、

    ms.WriteTo(fs)
    fs.Flush()
    fs.Close()
    ms.Close()

問題は、私が最初のMemoryStreamには、StreamWriterをフラッシュされなかったということでした。

このように変更するには、私の問題を解決します。

    sw.Flush()
    ms.WriteTo(fs)
    fs.Flush()
    fs.Close()
    ms.Close()
コードは以下の通りであったとき、

私は今日、この問題に直面します:

XmlTextWriter writer = new XmlTextWriter("IdP.xml", null);
writer.Formatting = Formatting.Indented;
xmlElement.WriteTo(writer);
私は以下のようにそれを変更したときに、

問題が修正されました。

using (XmlTextWriter writer = new XmlTextWriter("IdP.xml", null))
{
    writer.Formatting = Formatting.Indented;
    xmlElement.WriteTo(writer);
}

希望これは誰かに役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top