2012-02-08 48 views
5

我从web.config中我Global.asax.csApplication_Start读取两个值。来自web.config的字符串值被分配给它们的公共属性,也在Global.asax.cs中定义。如何访问在global.asax.cs中创建的属性?

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

更新#1 这是比我想象的(也许我只是使其复杂)更加复杂。我想在普通的ol类库中引用这些属性的类,并且我无法访问httpcontext(或者我不知道如何访问它)。

回答

1

如果Global.asax.cs中不操作的值,然后简单地从web.config像你的global.asax.cs已经在做阅读的价值。

但是,如果不Global.asax.cs中操纵值,那么你可以写值到“应用程序”对象。

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

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

    } 

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

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

     Abc = "123"; 

    } 
+0

我想过直接从配置文件读取值,如我在做的global.asax.cs。问题是这会被读取很多次,对我来说,阅读一次,将其存储在一个变量中,并在需要时引用变量会更有意义。我们使用EF和这个事件处理程序(需要这个值的地方)很容易被触发,所以会有很多来自web.config的读取。 – Joe 2012-02-08 18:01:46

+0

在这种情况下(大量阅读)是使用缓存。 – 2012-02-09 14:49:57

5

演员当前应用程序实例您Global类型有访问属性。

var app = (Your.App.Namespace.Global)HttpContext.Current.ApplicationInstance; 
var x = app.YourProperty; 
+2

@Greg_B它实际上是作为HttpContext.Current.ApplicationInstance是HttpContext.Current.Application对HttpApplicationState对象不是一个HttpApplication对象。 – rism 2013-06-27 05:25:46