c# - Mvc动态注册HttpModule实例
再也不容为了兼容 iis 6、7、8、9、10 了 -_- !!!!。
不用配置 web.config 的 <httpModules> or <modules> 节点了!!!
Microsoft.Web.Infrastructure.DynamicModuleHelper 包含的类可帮助管理使用 Razor 语法的 ASP.NET 网页中的动态模块。
此命名空间及其成员仅供内部使用,不应在你的代码中直接调用。
使用 PreApplicationStartMethod 特性可以动态在web应用启动前注册 httpmodle。
适用于
.NET Framework 4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6 4.5.2 4.5.1 4.5
using System;
using System.Web;
using Microsoft.Web.Infrastructure.DynamicModuleHelper;
[assembly: PreApplicationStartMethod(typeof(xxx.PreApplicationStartRegist), "PreStart")]
namespace xxx
{
/// <summary>
/// 动态注册 IHttpModel
/// </summary>
public class PreApplicationStartRegist
{
private static bool hasLoaded;
static object _lock = new object();
public static void PreStart()
{
Console.WriteLine("PreApplicationStartRegist.PreStart() 执行...");
lock (_lock)
{
if (!hasLoaded)
{
hasLoaded = true;
DynamicModuleUtility.RegisterModule(typeof(xxx.Service.PerformanceMonitorModule));
Console.WriteLine("PreApplicationStartRegist.PreStart() 注册 IHttpModle 成功!");
}
}
}
}
}
namespace xxx.Service
{
/// <summary>
/// http 管道,用于记录访问日志
/// </summary>
public class PerformanceMonitorModule : IHttpModule
{
}
标签:PreStart,HttpModule,Web,c#,xxx,PreApplicationStartRegist,Mvc,注册,using From: https://blog.51cto.com/u_4518216/5804844