すみません、TraceSourceについてちょっと質問です。
以下のようなクラスを作り
class TextBoxTraceListener : TraceListener
{
TextBox textBox;
public TextBoxTraceListener(TextBox tb)
{
this.textBox = tb;
}
public override void Write(string message)
{
this.textBox.AppendText(message);
}
}
class Form1 : Form
{
public Form1()
{
TraceSource ts = new TraceSource(GetType().ToString());
ts.Listeners.Add(new TextBoxTraceListener(this.textBox1));
ts.TraceInformation("hoge");
}
}
とやれば、hoge がテキストボックスに表示されますよね。
他のクラスでTraceSourceを作成し、トレースしても、そのインスタンスごとにリスナを登録しないとだめですよね。
でも構成ファイル(app.config)にConsoleTraceListenerとか
TextWriterTraceListenerとかを指定してやれば全てのTraceSourceのインスタンスにリスナを設定してくれますよね。
ところがTextBoxTraceListenerはTextBoxのインスタンスが必要なので、構成ファイルで設定できないのです。
複数のクラスでTraceSourceを使っていて、それらの出力を全てテキストボックスに表示させたいんです。
なんかいい方法ありませんか?