まず、誰もが助けようとしていることを知っているので、これは良いパターンとは見なされないことを知っています. 次に、はい、私はシングルトン パターンについて知っており、頻繁に使用しています。これは、「すべきか」ではなく、「できますか」という質問と考えてください。
とはいえ、アプリケーションがシャットダウンされているとき (またはコンソール セッションが終了したとき) に静的クラスに通知する方法はありますか?
次の静的クラスを検討してください。
public static class Foo()
{
static Foo()
{
// This is run the first time any static members are accessed
StringOnFoo = LoadStringFromFile("mystring.txt");
}
public static string StringOnFoo{ get; set; }
}
私が考えることができる唯一のことは、イベントを実装するクラスとそれを呼び出すデストラクタを作成し、それを静的クラスのプライベート静的フィールドに詰め込み、そこにイベントを配線することです。
ただし、デストラクタでイベント ハンドラにアクセスしても安全かどうかはわかりません。その時点でまだ接続されていますか?