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
{
}