• PreApplicationStartMethodAttribute程序启动扩展


    一、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)

     
    更多:
  • 相关阅读:
    We7 2.7版:全拖拽建站 开源CMS
    We7 CMS 2.6RC2版本发布 开源CMS
    LINQ简易教程
    C# 引用 C# DLL
    ASP.NET中母版页与JavaScript控制的一点小问题
    LINQ连接远端数据库问题
    ASP.NET中自动生成XML文件并通过XSLT显示在网页中的方法
    【转载】常见逻辑错误
    因为压力大变得很郁闷的时候怎么办
    代码覆盖度C#代码监控工具NCover、Rational PureCoverage、BullseyeCoverage
  • 原文地址:https://www.cnblogs.com/tianma3798/p/8251858.html
Copyright © 2020-2023  润新知