先预备一个类,用于Start时调用
public static class MyPreApplicationStart { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { if (filters != null) filters.Add(new HandleErrorAttribute()); } public static void Start() { RegisterGlobalFilters(GlobalFilters.Filters); }
这之后通过PreApplicationStartMethodAttribute注册到assembly即可,需要注意的是自定义类必须public ,其中用记Start的方法必须public static
[assembly: PreApplicationStartMethod(typeof(MyPreApplicationStart), "Start")]
Reference:
http://msdn.microsoft.com/zh-cn/library/gg401977(v=vs.98)
它可以让我们脱离web.config做一些事情,如注册自定义IHttpModule、注册BuildProvider。此用法不能保证调用程序集定义的应用程序启动方法的顺序。 因此,每个注册的开始方法应该将代码编写为分开运行,不应该依赖于其他注册开始方法的副作用。