次の方法があるかどうか疑問に思っています。
メインの WCF サービスは、MSMQ に呼び出されたりバインドされたりするクラス ライブラリにあります。サービスをホストする別のコンソール アプリを用意します。
2 つの異なるプロジェクト。もちろん、コンソール アプリはメッセージを処理するクラス ライブラリを参照します。
有害メッセージのカスタム処理が必要です。問題ありません。属性を作成し、これをサービス自体の上に装飾してから、IErrorHandler を実装してメッセージを移動するカスタム クラスを作成できます。これはすべてクラスライブラリにあります
問題: サービスがメッセージの処理を続行するには、サービス ホストを再起動する必要があります。
しかし、クラス ライブラリにはサービスをホストするコンソール アプリへの参照がないため (また、そうすべきではありません)、不可能です。
クライアントを再起動する最良の方法は何ですか? 実行時に属性とエラーハンドラーをアタッチする方法があるのではないかと考えていました。これはコンソールアプリプロジェクトに移動され、サービスが作成されているときに実行時に何らかの方法で属性をアタッチする可能性がありますか? それとも私は夢中になっていますか?