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.
Trvalý 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ů
Názorný postup: Vytvoření Průvodce
Koncepty
Automatizační objekt modelu grafu