我正在编写一个 asp.net HTTP 模块,它需要从本地文件(例如存储在应用程序根目录中的 config.xml)一次读取配置数据,然后根据配置对传入的请求。
由于 Asp.NET 模块中没有可用的 Application_Start/Application_init Hook ,处理这种情况的最佳方法是什么。我试图避免每次请求到来时都读取配置文件。理想情况下,我想在应用程序启动时读取配置文件。
我只需要在 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/