2

我在包含 3 个项目的解决方案上有一个带有共享变量的类。我也引用了包含来自其他 2 个项目(我们称为 NoShared 项目)的共享变量的项目。

我可以从 NoShared Projects 完美阅读,但问题是我可以在这个项目的共享变量上写。

这是包含共享变量的类的代码。

Public Class GlobalVariables
    Public Shared Debug As Boolean = False
    Public Shared Username As String = ""
    Public Shared Password As String = ""
End Class

如果我从 NoShared Projects 执行此操作:

GlobalVariables.Debug = True

什么也没发生, 的值GlobalVariable.Debug仍然是False

请问有什么帮助吗?

我正在使用不同的项目,因为每个项目都需要不同的执行权限,例如管理员权限和其他普通用户权限。

4

1 回答 1

2

如果您运行两个程序(例如 2 个 EXE,或者一个网站一个 EXE),那么共享变量在它们之间不是全局的。它们仅在同一应用程序域(相同的 EXE)内全局“共享”。

在这种情况下,您需要将值存储在对两个项目都是全局的其他位置,或者将值存储在一个正在运行的事件中,并提供一种访问它的方法(例如 .net 远程处理或 Web 服务调用)来编写只有一个应用程序空间。

处理它的另一种方法是将其存储在数据库中,您可以在其中悲观地锁定在更新期间保存该值的表。

于 2013-05-23T22:49:41.237 回答