制御がusingディレクティブの外に通過すると、したXmlWriterが明示的にはFooに閉鎖されていなかった問題がある方法リファクタリングの質問
public static string[] Foo(System.IO.Stream stream)
{
XmlTextWriter xmlWriter = new XmlTextWriter(stream, System.Text.Encoding.ASCII);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Element");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
return new string[3]{"1", "2", "3"};
}
と、呼び出し元のコード
using(MemoryStream memStream = new MemoryStream())
{
string[] playerIDs = PlayerCommand.Foo(stream);
// do some stuff with stream and playerIDs
}
(これを考えますストリームを無駄にするでしょうか?)
また、ストリーム間でメソッドをやりとりしていますが、XMLWritingの結果を呼び出し元のコードに渡す方が良いですか?ここでは、事前に
おかげで、 グレッグ
はい、良い点。 –
何か他の答え:) LOL –
私はICSharpCode.SharpZipLib.Zipでそれを圧縮する前に、私はそれを保存しなければならないと考えていたので、xmldocumentを渡しませんでした。おそらくこれは間違っていますか? –