I was replying to this forum post I actually couldn't find a good example on how to do this - wierd, it's such a common thing to do. So, the problem is, is there a better method than using the Application object to store objects which should be available for the entire lifetime of the application? Yes, global static variables are a great way to do this. Simply, you use the global.asax.cs file to define a static property - you can then access this simply using the Global.* in your code. For example, in the global.asax.cs:

public static ArrayList TestArrayList = new ArrayList();

Now, in any class I can access this...like so...

 

if(Global.TestArrayList != null)

{

          for(int i=0; i <1000; i++)

          {

                    Global.TestArrayList.Add(i);

          }

}

 

Cool, no copy required, (yes I do realise I should actually be locking this first to ensure thread safety...)So, short one, but might come in handy for someone! Oh, I did a little example app which also shows using this in an HttpModule, you can download it here