配線されているイベントのサブスクライブをプログラムで解除したいと考えています。
EndRequest
イベントの購読を解除する方法を知りたいです。
インラインコードを使用していることを考えると、これを行う方法がわかりません。(それは正しい専門用語ですか?)
を使用しsome.Event -= MethodName
て購読を解除できることはわかっていますが、ここにはメソッド名がありません。
インライン コードを使用している理由は、イベントの外部で定義された変数を参照したいからです (これは必要でしたが、臭いがします... 渡す必要があるように感じます)。
助言がありますか?
コードタイム..
public void Init(HttpApplication httpApplication)
{
httpApplication.EndRequest += (sender, e) =>
{
if (some logic)
HandleCustomErrors(httpApplication, sender, e,
(HttpStatusCode)httpApplication.Response.StatusCode);
};
httpApplication.Error += (sender, e) =>
HandleCustomErrors(httpApplication, sender, e);
}
private static void HandleCustomErrors(HttpApplication httpApplication,
object sender, EventArgs e,
HttpStatusCode httpStatusCode =
HttpStatusCode.InternalServerError)
{ ... }
ASP.NET
これは、アプリケーションでエラーを処理するためのサンプル コードです。
注: これを ASP.NET エラー処理に関する議論に変えないでください。私はイベントをいじって、これらのイベントをサンプルの研究開発/学習に使用しています。