我正在编写一个asp.net HTTP模块,该模块需要从本地文件(例如存储在应用程序根目录中的config.xml)读取一次配置数据,然后根据配置对传入请求执行一些处理。

由于在Asp.NET模块中没有可用的Application_Start / Application_init挂钩,因此处理该方案的最佳方法是什么。我试图避免每次请求到来时都读取配置文件。理想情况下,我想在应用程序启动时读取配置文件。

我只需要在http模块中编写此代码,并且不想使用Global.asax

最佳答案

我会去一个简单的财产,像这样...

public MyConfig Config
{
    get
    {
        MyConfig _config = Application["MyConfig"] as MyConfig;
        if (_config == null)
        {
            _config = new MyConfig(...);
            Application["MyConfig"] = _config;
        }
        return _config;
    }
}


这样,您就可以通过属性通过Config访问所需的任何内容...

int someValue = Config.SomeValue;


如果尚未将其加载到应用程序对象中

如果您需要基于每个用户而不是全局的配置,则只需使用Session["MyConfig"]而不是Application["MyConfig"]

关于c# - 如何在ASP.NET模块中处理应用程序启动事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3119034/

10-12 14:18