我正在编写一个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/