2019-09-17プログラムを作ってデバッグをするときに「トレース」はとてもよく使います。Studioなどでは「出力」ウィンドウなどに表示などをしてくれるのでとても助かります。デバッグの時などでも、ときどきこういった情報を扱いやすくなるようにする機能があるので試してみます。いうオブジェクトが用意されています。TraceListernerとは、トレース出力を受け取って、それを他の場所に出力するオブジェクトです。アプリケーションからのトレース情報を出力ストアに送り出すためのパイプのようなもので、トレース情報をトレースリスナに書き込むと、そのトレースリスナがトレース情報をターゲットメディアに出力してくれます。派生クラスを作成します。派生クラスは、単純に受け取ったトレース情報をテキストファイルに出力するだけのものにします。このクラスは「クラスライブラリ(DLL)」として作成します。System.Diagnostics;"を用意します。System.Collections.Specialized;"も必要です。Flush()こちらは、今回の派生クラス固有の実装です。message)・・・トレース情報を保持するためのメソッドこれらの実装を行ってクラスは、下記のようになります。指定したメッセージをリスナーに書き込みます。指定したメッセージをリスナーに書き込みます。指定したメッセージとカテゴリ名をリスナーに書き込みます。オブジェクトのToStringの値とカテゴリ名をリスナーに書き込みます。}TraceListernerの派生クラスを使うテストプログラムTraceListernerの派生クラスを呼び出すためにSystem.DiagnosticsのTraceやDebugで出力を行います。サンプルプログラムのコードは下記のようになります。}今回のポイント今回のサンプルプログラムで重要になるのは、このソースコードより"App.config"というプログラムのconfigファイルのほうです。通常のWindowsフォームアプリケーションのApp.configは、このようなものです。</trace></system.diagnostics>を追加して、下記のようなXMLファイルとなるようにします。/></appSettings><appSettings>部分は、トレース情報を出力するファイル名を指定するもので、今回の派生クラス固有の実装のための設定です。/>のvalueに指定している"MyTrace.txt"が、出力されるファイル名です。</trace></system.diagnostics><system.diagnostics>部分は、今回の派生クラスを呼び出して動作するようにするための設定です。type="TraceListenerDLL.Listener,TraceListenerDLL"/>この行にあるtypeの値部分は、今回作成したクラスライブラリのクラス名と名前空間です。このテストプログラムをビルドして実行するときには、TraceListernerの派生クラスのあるクラスライブラリをテストプログラムの実行ファイルがあるフォルダに置いてから実行します。Studioの[出力]ウィンドウに、今までと同じような実装されたDebugの出力が下記のように出ます。frmMain_LoadbtnExit_ClickfrmMain_FormClosedまた、テストプログラムの実行ファイルがあるフォルダに"MyTrace.txt"というファイルが出力されています。この"MyTrace.txt"の中身は下記のようになりました。frmMain_LoadbtnExit_ClickfrmMain_FormClosed今回作成したDLLは、このDLLのためのプログラムを用意しなくても他のプログラムの実行ファイルと同じフォルダにDLLを置いてApp.config(実行環境の場合"<プログラム名>.exe.config")に上記の設定を追加するだけでも使用できます。ファイルの属性を取得する(System.IO.FileInfoクラス)「ファイルの属性」は、このファイルが「どういう」ファイルなのか、を表現するものです。知られているだけでも種類がいろいろあります。コレクションは使えない?」などで登場した「ジェネリック」なクラスですが、下記のクラスがあります。