title: Treatment of Shared in GAC Included Assemblies
body: <p>I know that when creating a DLL and declaring items as "Shared" (Static in C#) that they are instantiated when first called, and then that object reference lives on as the single reference.</p>
  
  <p>So declaring a shared string property once set can be called again to retreive the same value.  And that thread safety is then a Major concern within the application domain.</p>
  
  <p>What happens outside of the application domain.  If we put the assembly in the Global Application Cache (GAC) how many instances will exist?</p>
  
  <p>For example a static property called "MyFileName" in a GAC'ed .dll.  </p>
  
  <p>Then we have two applications calling the GAC'ed .dll.  How many instances of "MyFileName" would exist?  Would changes to MyFileName from Application one copy over to the value that Application Two uses?</p>