如何访问在global.asax.cs中创建的属性?

Joe*_*Joe 5 asp.net webforms

我从web.config中读取两个值Application_Start我的Global.asax.cs.来自web.config的字符串值将分配给它们的公共属性,也在Global.asax.cs中定义.

如何从另一个类,方法和命名空间访问global.asax.cs文件中的属性?

更新#1这比我想象的要复杂得多(或者我可能只是让它变得复杂).我想在普通的ol'类库中引用这些属性的类,我无法访问httpcontext(或者我不知道如何访问它).

Gre*_*g B 5

将当前应用程序实例转换为您的Global类型并访问其中的属性.

var app = (Your.App.Namespace.Global)HttpContext.Current.ApplicationInstance;
var x = app.YourProperty;
Run Code Online (Sandbox Code Playgroud)

  • @Greg_B它实际上是HttpContext.Current.ApplicationInstance,因为HttpContext.Current.Application是一个HttpApplicationState对象而不是HttpApplication对象. (2认同)

Pat*_*lvé 1

如果 Global.asax.cs 不操作这些值,则只需从 web.config 中读取值,就像您在 global.asax.cs 中所做的那样。

但是,如果 Global.asax.cs 确实操作了这些值,那么您可以将这些值写入“Application”对象中。

    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup

        Application.Add("Foo", "Bar");

    }
Run Code Online (Sandbox Code Playgroud)

最后,您可以将要从全局公开的属性标记为静态。

    public static string Abc { get; set; }
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup

        Abc = "123";

    }
Run Code Online (Sandbox Code Playgroud)