2015-11-25 328 views
0

我尝试设置在类的类型IProcessHostPreloadClient Application对象(代码在应用程序初始化运行时,这里解释:http://www.codeproject.com/Articles/795265/IIS-Asp-net-warm-up-Auto-Start-Application):如何设置应用程序启动应用程序变量

public class DeserializeEdocsProvider : System.Web.Hosting.IProcessHostPreloadClient 
{ 
    public void Preload(string[] parameters) 
    { 
     ... 
      //the following fails with message: 
      //"Object reference not set to an instance of an object." 
      HttpContext.Current.Application["testtest"] = "test"; 
     ... 
    } 
} 

我要的是在应用程序启动时(在应用程序池的回收之后)创建对象,以及稍后在Web应用程序的其他请求中访问该对象。任何解决方案是赞赏。

+1

在'Global.asax'中有一个静态变量,比如'MyVar',在MyClass里面,并且在'Application_Start()'方法中设置值。稍后,使用'MyClass.MyVar'访问变量。 – mshsayem

+0

谢谢@mshsayem。你的解决方案帮了我很多! – Batar

回答

0

有一个静态变量/属性,说MyVar,你的类里面,说MyClass

public class MyClass 
{ 
    ... 
    private static int _myVariable; 
    public static int MyVar {get; set;} 
    ... 
} 

现在,Global.asax设置Application_Start()方法中的值(如果Global.asax是不是有添加一个):

protected void Application_Start(object sender, EventArgs e) 
{ 
    ... 
    MyClass.MyVar = 100; 
    ... 
} 

后来,从任何地方访问变量(它是一个公共静态属性):

... 
lblMyLabel.Text = MyClass.MyVar.ToString(); 
... 
相关问题