Sdílet prostřednictvím


Trvalý informace v projektů a jejich řešení

Při zavření projektu, uživatelská data jako hodnoty proměnných jsou vyřazeny, i když uložit projekt nebo řešení.Visual Studio Automatizace modelu však nabízí způsob uložení nebo zachování těchto uživatelských dat mezi relacemi integrované vývojové prostředí (IDE).To lze provést pomocí Globals prostřednictvím objektu Globals a Globals vlastnosti.Globalsproměnné roztoku přetrvá a Globalsproměnných projektu potrvá.Každá vlastnost vrací Globals objektu, jehož členové umožňují ukládat, načítat, výčet a volitelně přetrvávají data.V takovém případě, když příště otevřete projekt nebo řešení, jsou obnoveny hodnoty.

To je užitečné například povolit příkaz nabídnout trvalé výchozí hodnotu nebo umožní změnit své chování poté, co byl vyvolán konkrétní počet opakování.Doplňky můžete tuto funkci použít data přetrvávají a načíst data ze souborů roztoku (.sln).

Globální chování Podrobnosti objektu

Pokud Globals objektu je spojen s IDE, pak hodnota přetrvá na dvou místech.Pro Windows NT 4.0, Windows 2000 Professional, a Windows Server 2003, hodnoty jsou uloženy v C:\winnt\Profiles\<username>\Application Data\Microsoft\Visual Studio\extglobal.dat.Pro Windows 95, Windows 98, Windows 98 Druhé vydání, Windows Millennium Edition, pokud je počítač v nastavení pro přihlášení uživatele, hodnoty jsou uloženy v C:\Windows\Profiles\<username>\Application Data\Microsoft\Visual Studio\extglobal.dat.Jinak je bez <username> prvku.Při každém zavření IDE nebo uložit všechny operace, IDE přetrvává globální hodnoty.

Pokud Globals je přidružený objekt Solution2 objektu, pak hodnota přetrvá v souboru .sln.Tyto hodnoty jsou trvalé při uložení souboru řešení.

Pokud Globals je přidružený objekt Project objektu, pak hodnota přetrvá v souboru projektu (.dsp, .vbp atd.).Hodnoty jsou trvalé, kdykoli bude projekt uložen.

Musí být řetězec, který může být trvalé hodnoty uložené –, není pole SAFEARRAY, objektu nebo strukturovaného úložiště.Pokud proměnná nelze převést na řetězec, je trvalé anglické řetězec s vysvětlením, proč není zachováno proměnné.

Při každé proměnné jsou trvalé, je uložen nový záznam proměnných a jejich hodnoty.

96t389k3.collapse_all(cs-cz,VS.110).gifTrvalý globální hodnoty

Následující makro příklad ukazuje použití Globals objektu a jeho členové zachovat hodnotu proměnné po ukončení řešení a jak získat přístup k hodnotě při řešení je znovu otevřen.Spočítá a výstupy kolikrát doplněk byl načten.

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.");
}

Viz také

Úkoly

Jak: Přidat a zpracování příkazů

Jak: Vytvoření doplňku

Názorný postup: Vytvoření Průvodce

Koncepty

Automatizační objekt modelu grafu

Další zdroje

Vytváření a řízení prostředí Windows

Vytváření doplňků a průvodců

Automatizace a Reference rozšiřitelnosti