GAC中的.Net静态变量和DLL版本

时间:2012-09-28 08:13:04

标签: c# dll

对静态类/变量和DLL版本有疑问。

如果我在DLL(版本1)中有一个静态变量并将其加载到GAC中,则创建一个较新版本的DLL(版本2)并将其加载到GAC中,当调用任一版本时它是否会在内存中引用相同的变量?

示例:

  • 客户端1在DLL的版本1中设置静态变量IsAuthenticated = True
  • 客户端2获取相同静态变量(IsAuthenticated)的值,但是它引用了DLL的版本2.

命名空间是相同的。

当客户端2调用它时,是否应该IsAuthenticated为真?

1 个答案:

答案 0 :(得分:2)

不,每个(版本的)DLL都有自己的所有静态变量的副本,即使这两个DLL都加载到同一个进程中。在这样的流程中共享内存(这是我对问题的解释)不仅是技术噩梦,也是一个非常糟糕的主意。