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 つのプログラム (たとえば、2 つの EXE、または 1 つの Web サイトと 1 つの EXE) を実行している場合、共有変数はそれらの間でグローバルではありません。これらは、同じアプリケーション ドメイン (同じ EXE) 内でのみグローバルに "共有" されます。

この場合、両方のプロジェクトに対してグローバルな別の場所に値を保存するか、実行中のオカレンスの 1 つに値を保存し、それにアクセスする方法 (.net リモーティングや Web サービス呼び出しなど) を提供して書き込む必要があります。 1 つのアプリケーション スペースでのみ使用できます。

それに対処するもう1つの方法は、更新中に値を保持するテーブルを悲観的にロックできるデータベースに格納することです。

于 2013-05-23T22:49:41.237 に答える