この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 |
訳文
原文
|
Globals インターフェイス
Globals オブジェクトは、VariablePersists プロパティを使用して、Visual Studio 環境の各セッションの存続期間および複数セッションの存続時間のデータを格納するためのキャッシュです。
アセンブリ: EnvDTE (EnvDTE.dll 内)
Globals 型で公開されるメンバーは以下のとおりです。
| 名前 | 説明 | |
|---|---|---|
|
DTE | トップレベルの機能拡張オブジェクトを取得します。 |
|
Parent | Globals オブジェクトの直接の親オブジェクトを取得します。 |
|
VariableExists | 指定した変数が存在するかどうかを示す値を返します。 |
|
VariableNames | 現在のすべてのグローバル変数名のリストを取得します。 |
|
VariablePersists | VariablePersists プロパティは、複数の型の Globals オブジェクトに適用されます。 DTE.Globals オブジェクトの場合は、変数が環境によって保持され、環境のセッション間で利用できるかどうかを取得または設定します。 Solution.Globals オブジェクトの場合は、変数が環境によって保持され、環境のセッション間およびソリューションの読み込みとアンロード間で利用できるかどうかを取得または設定します。 Project.Globals オブジェクトの場合は、変数が環境によってプロジェクト ファイルに保持されるかどうかを取得または設定します。 |
|
VariableValue | 指定した名前で変数を返すか、設定します。 |
たとえば、Globals オブジェクトを使用すると、実行ごとの値が永続化するグローバル変数をプログラムで使用できます。 このオブジェクトは、実行ごとにユーザーが情報を入力する必要がある場合に、コマンドが既定値を実装できるようにするためにも使用できます。 また、一定回数の呼び出しが行われた後に、動作を変更するためにも使用できます。
データは、名前とバリアント値のペアとして Globals オブジェクトに格納されます。 VariablePersists プロパティを使用してこの名前と値のペアをディスク上に格納し、その状態を (文字列として) Visual Studio の異なるセッション間で保持することもできます。
メモ
|
|---|
|
オブジェクトまたは SafeArrays を含む変数は保存できません。 値を文字列として保存できる場合は、ネイティブな形式で保存されます。 |
アドインまたはマクロの場合も、Globals オブジェクトを使用して、Visual Studio セッション間で各ユーザーに固有のユーザー定義データを保存できます。 Globals オブジェクトを使用して、ソリューション (.sln) ファイルにデータを保存したり、データを取得したりできます。
VariableValue プロパティを使用すると、Globals オブジェクトで保存した値の保存および読み取りが可能です。
メモ
|
|---|
|
VariableValue の名前の文字列に、空白文字、コロン (:)、またはピリオド (.) を含めることはできません。 名前にこれらのいずれかの文字が含まれていると、"値が有効な範囲にありません。" というエラーが示されます。 |
void OnAddinLoaded(_DTE applicationObject) { // Count the number of times an add-in is loaded // and store the value in the solution. Globals globals; globals = applicationObject.Solution.Globals; if(globals.get_VariableExists("AddinLoadCounter")) { // The counter has already been set, so increment it. System.Int32 int32; int32 = System.Int32.Parse((string) globals["AddinLoadCounter"]); int32++; globals["AddinLoadCounter"] = int32.ToString(); } else { // Counter has never been set, so create and initialize it. globals["AddinLoadCounter"] = 1.ToString(); globals.set_VariablePersists("AddinLoadCounter", true); } System.Windows.Forms.MessageBox.Show("This add-in has been loaded: " + globals.VariableValue["AddinLoadCounter"] + " times."); }
メモ