2

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

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

例子:

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

命名空间是相同的。

当客户端 2 调用它时会/应该IsAuthenticated是真的吗?

4

1 回答 1

2

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

于 2012-09-28T08:14:13.663 回答