PreApplicationStartMethodAttribute程序启动扩展
一、PreApplicationStartMethodAttribute 类简介
// // 摘要: // 提供对应用程序启动的扩展支持。 [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] public sealed class PreApplicationStartMethodAttribute : Attribute { public PreApplicationStartMethodAttribute(Type type, string methodName); // // 摘要: // 获取关联启动方法所返回的类型。 // // 返回结果: // 一个描述启动方法的类型的对象。 public Type Type { get; } // // 摘要: // 获取关联的启动方法。 // // 返回结果: // 一个字符串,其中包含关联启动方法的名称。 public string MethodName { get; } }
-
没有程序集定义应用程序启动方法调用的顺序能保证。 因此,每个已注册的 start 方法应编码孤立地运行的不应依赖于副作用的其他注册的开始方法。
使用方法,在程序集加载文件AssemblyInfo.cs中注册使用
//定义程序启动时处理方法 [assembly: PreApplicationStartMethod(typeof(TestOne), "Start")]
二、使用示例:
注:注册方法必须是公共的静态的
定义如下:
public class TestOne { /// <summary> /// 程序启动时,PreApplicationStartMethod中指定的方法必须是公共静态的 /// </summary> public static void Start() { LogHelper.LogHelper _log = new LogHelper.LogHelper(); _log.WriteLine("程序启动成功1"); } }
三、转载
1. 作用
指定某个函数在站点的Application_Start之前执行。
2. 用法
[assembly: PreApplicationStartMethod(typeof(SomeClassLib.Initializer), "Initialize")]
一般放在AssemblyInfo.cs。
可以注册多个。
3. 用途
它可以让我们脱离web.config做一些事情,如注册自定义IHttpModule、注册BuildProvider。
4. 注意
不能保证调用程序集定义的应用程序启动方法的顺序。 因此,每个注册的开始方法应该将代码编写为分开运行,不应该依赖于其他注册开始方法的副作用。(摘自MSDN)
更多: