title: keeping an object alive in C#
body: <p>I have a <code>class X</code> with large size field member <code>y</code> (in terms of memory) that is declared as static member, I noticed that each time I instantiate an object of <code>X</code>, this field get either loaded or reloaded in the memory. the underlying structure of <code>y</code> is a <code>dictionary&lt;string,int&gt;</code> which holds around 5000 kvs. is there a way to declare <code>y</code> as a separate explicit dictionary an keep it alive during the application life time ?</p>
  
  <p>Notice that: an object of X can be disposed during runtime, so the more accurate question is : if the dictionary is declared as static member of a class, would the static member remains in memory if the the class's object got garbage collected or explicitly destroyed ?</p>