Globals-Schnittstelle

Das Globals-Objekt stellt einen Cache dar, der zum Speichern von Daten für die Dauer einer Sitzung in der Visual Studio-Umgebung sowie sitzungsübergreifend unter Verwendung der VariablePersists-Eigenschaft eingesetzt werden kann.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

'Declaration
<GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")> _
Public Interface Globals
[GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")]
public interface Globals
[GuidAttribute(L"E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")]
public interface class Globals
[<GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")>]
type Globals =  interface end
public interface Globals

Der Globals-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft DTE Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab.
Öffentliche Eigenschaft Parent Ruft das unmittelbar übergeordnete Objekt eines Globals-Objekts ab.
Öffentliche Eigenschaft VariableExists Gibt zurück, ob die angegebene Variable vorhanden ist.
Öffentliche Eigenschaft VariableNames Ruft eine Liste der Namen aller aktuellen globalen Variablen ab.
Öffentliche Eigenschaft VariablePersists Die VariablePersists-Eigenschaft gilt für mehrere Typen von Globals-Objekten.Sie ruft für das DTE.Globals-Objekt ab, ob die Variable von der Umgebung beibehalten wird und zwischen Sitzungen in der Umgebung verfügbar ist, bzw. legt dies fest.Sie ruft für das Solution.Globals-Objekt ab, ob die Variable von der Umgebung beibehalten wird und zwischen Sitzungen in der Umgebung sowie zwischen dem Laden und Entladen einer Projektmappe verfügbar ist, bzw. legt dies fest.Sie ruft für das Project.Globals-Objekt ab, ob die Variable von der Umgebung in der Projektdatei beibehalten wird, bzw. legt dies fest.
Öffentliche Eigenschaft VariableValue Gibt die Variable mit dem angegebenen Namen zurück oder setzt diese.

Zum Seitenanfang

Hinweise

Durch das Globals-Objekt können Programme beispielsweise globale Variablen enthalten, deren Werte nach der Ausführung beibehalten werden. Es kann außerdem verwendet werden, um für einen Befehl die Implementierung eines Standardwerts zu ermöglichen, falls bei jeder Befehlsausführung eine Benutzereingabe erforderlich ist. Darüber hinaus kann das Objekt sein Verhalten ändern, nachdem es eine bestimmte Anzahl von Aufrufen empfangen hat.

Daten werden im Globals-Objekt als aus Namen und Variante bestehende Wertpaare gespeichert. Diese aus Namen und Wert bestehenden Paare können optional auf dem Datenträger gespeichert werden. Dabei wird die VariablePersists-Eigenschaft verwendet, um ihren Zustand (als Zeichenfolge) von einer Visual Studio-Sitzung zur nächsten beizubehalten.

Tipp

Variablen, die Objekte oder SafeArrays enthalten, können nicht gespeichert werden. Wenn der Wert als Zeichenfolge gespeichert werden kann, wird er im systemeigenen Format gespeichert.

Add-Ins oder Makros können das Globals-Objekt außerdem zur Speicherung von benutzerdefinierten Daten zwischen Visual Studio-Sitzungen verwenden. Darüber hinaus können sie mithilfe des Globals-Objekts Daten in einer Projektmappendatei (SLN-Datei) speichern und diese Daten wieder abrufen.

Verwenden Sie die VariableValue-Eigenschaft, um mit dem Globals-Objekt gespeicherte Werte zu speichern oder zu lesen.

Tipp

VariableValue-Namenszeichenfolgen dürfen keine Leerzeichen, Doppelpunkte (:) oder Punkte (.) enthalten. Wenn eines dieser Zeichen in einem Namen enthalten ist, wird eine Fehlermeldung mit dem Hinweis ausgegeben, dass der Wert nicht innerhalb des erwarteten Bereichs liegt.

Beispiele

Sub OnAddinLoaded(ByVal dte As DTE)
    ' Count the number of times an add-in is loaded
    ' and store the value in the solution.
    Dim globals As Globals
    globals = dte.Solution.Globals
    If globals.VariableExists("AddinLoadCounter") Then
        ' The counter has already been set, so increment it.
        Dim int32 As System.Int32
        int32 = System.Int32.Parse(CStr(globals("AddinLoadCounter")))
        int32 += 1
        globals("AddinLoadCounter") = int32.ToString()
    Else
        ' Counter has never been set, so create and initialize it.
        globals("AddinLoadCounter") = 1.ToString()
        globals.VariablePersists("AddinLoadCounter") = True
    End If
    MsgBox("This add-in has been loaded: " & _
    globals.VariableValue("AddinLoadCounter") & " times.")
End Sub
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.");
}

Siehe auch

Referenz

EnvDTE-Namespace

Weitere Ressourcen

Persistente Daten in Projekten und Projektmappen