Pur*_*ome 8 .net c# asp.net events event-handling
我希望以编程方式取消订阅已经连线的活动.
我想知道如何取消订阅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)
{ ... }
Run Code Online (Sandbox Code Playgroud)
这只是我的一些示例代码,用于处理ASP.NET应用程序中的错误.
注意:请不要将此变成关于ASP.NET错误处理的讨论.我只是在玩各种活动,并将这些活动用于一些样本研发/学习.
Mar*_*lon 11
取消订阅匿名代表是不可能的.您需要将其存储在变量中并稍后取消订阅:
EndRequestEventHandler handler = (sender, e) =>
{
if (some logic)
HandleCustomErrors(httpApplication, sender, e,
(HttpStatusCode)httpApplication.Response.StatusCode);
};
httpApplication.EndRequest += handler;
// do stuff
httpApplication.EndRequest -= handler;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |