一、PreApplicationStartMethodAttribute 类简介
应用程序启动时提供的扩展的支持。
命名空间: System.Web
程序集: System.Web(位于 System.Web.dll)
//
// 摘要:
// 提供对应用程序启动的扩展支持。
[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)
更多: