メソッドが与えられた場合
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
}
コントロールが using ディレクティブから渡されるとき、xmlWriter が Foo で明示的に閉じられていない (ストリームが役に立たなくなる) という問題はありますか?
また、メソッド間で Stream を渡すのは好ましくありませんか? XMLWriting の結果を呼び出し元のコードに戻すより良い方法はありますか?
前もって感謝します、 グレッグ