c# - 如何处理 ASP.NET 模块中的应用程序启动事件

标签 c# asp.net httpmodule

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

相关文章:

asp.net - 在 HttpModule 中重写 URL 时,如何让波浪号 (~) 运算符起作用?

c# - Java 的 "for (String currLine: allLines)"的 C# 等价物是什么?

c# - 客户端未从服务器多线程接收数据

c# - 如何使用asp.net c#根据用户输入查询oracle数据库

c# - Server.TransferRequest() 和 http 状态码

SEO 和带有动态 URL 的硬链接(hard link)

c# - 嵌套 For 循环变量增量

c# - 如何在 ASP.NET 成员(member)资格提供程序中手动调用 CreateUser 函数

css - Asp.Net 下拉列表和标签不显示内联

c# - 如何使用 C# 将数据从动态添加的行保存到 (csv/txt) 文件到 HTML 表?