XMLの文字列を返す必要があるWCFサービスがあります。しかし、作家は文字列ではなくファイルを構築したいと思うようです。私は試しました:ファイルの代わりに文字列に書き込むXmlWriter
string nextXMLstring = "";
using (XmlWriter writer = XmlWriter.Create(nextXMLstring))
これは、次のエラーが発生することを意味しますnextXMLstringはファイルパスを持っていません。それは次のようなものが欲しい:
using (XmlWriter writer = XmlWriter.Create("nextXMLstring.xml"))
XMLをビルドして文字列として戻すにはどうすればよいですか?
ありがとうございます!
@ウィル:あなたの変更をロールバックします。 XmlTextWriter.Close()はストリームにフラッシュします。そのため、文字列を抽出する前にストリームを生成します。 (このケースではほとんど違いはありませんが、WriterクラスとStreamクラスのフラッシュセマンティクスが常に明確に文書化されているわけではないので、これを一貫して行うほうがいいです) – Richard
これを使用している人のための単なるコメントです。 using()を省略し、代わりにXmlWriterを通常宣言した場合は、sw.ToString()を呼び出す前にxw.Flushを呼び出す必要があります。そうしないと、すべてのコンテンツを取得できない可能性があります。 (明らかに使用ブラケットを使用することをお勧めします...) – Ravendarksky
次のコードは、コード分析、beacuse Dispose()メソッドは、StringWriterオブジェクトで2回呼び出されるCA2202の警告を与えることを覚えてください –