Udostępnij za pośrednictwem


Utrwalanie informacji w projektach i rozwiązania

Przy zamykaniu projektu, dane użytkownika, takie jak wartości zmiennych są odrzucane, nawet jeśli Zapisz projekt lub rozwiązanie.Visual Studio Automatyzacji modelu, oferuje jednak sposobem przechowywania lub utrzymują się takich danych użytkownika między sesjami zintegrowane środowisko programistyczne (IDE).Jest to realizowane za pomocą Globals obiekt poprzez Globals i Globals właściwości.Globalsbędzie się powtarzał zmiennych rozwiązanie i Globalsbędzie się powtarzał zmiennych projektu.Każda właściwość zwraca Globals obiekt, którego członkowie pozwalają na przechowywanie, pobierać, wyliczyć i opcjonalnie utrzymują się dane.Gdy to zrobisz, przy następnym otwarciu rozwiązania lub projektu, przywracane są wartości.

Jest to przydatne na przykład, aby umożliwić polecenia zaoferować wartość domyślną trwałe lub pozwalających na zmianę jego zachowania, po przeprowadzeniu wywoływane określoną liczbę razy.Dodatki również można użyć tej funkcji do utrwalania danych i pobierania danych z plików roztworu (.sln).

Szczegóły zachowanie obiektu globalnego

Jeśli Globals obiekt jest skojarzony z IDE, a następnie wartość będzie się powtarzał w jednej z dwóch lokalizacji.Dla Windows NT 4.0, Windows 2000 Professional, i Windows Server 2003, wartości są przechowywane w folder c:\Winnt\Profiles nazwa_użytkownika<username>\Application Data\Microsoft\Visual Studio\extglobal.dat.Dla Windows 95, Windows 98, Windows 98 Wydanie drugie, Windows Millennium Edition, jeśli komputer jest w instalacji, podczas logowania użytkownika, wartości są przechowywane w C:\Windows\Profiles\<username>\Application Data\Microsoft\Visual Studio\extglobal.dat.W przeciwnym wypadku istnieje nie <username> element.Każdorazowo IDE jest zamknięte lub operacja Zapisz wszystkie wystąpienia, IDE będzie się powtarzał wartości globalnych.

Jeśli Globals obiekt jest skojarzony z Solution2 obiekt, a następnie wartość będzie się powtarzał w pliku .sln.Wartości te są zachowywane po zapisaniu pliku rozwiązania.

Jeśli Globals obiekt jest skojarzony z Project obiekt, a następnie wartość będzie się powtarzał w pliku projektu (.dsp, .vbp i tak dalej).Wartości są zachowywane przy każdym zapisaniu projektu.

Wartości, które mają być przechowywane musi być jako ciąg znaków, które mogą być pozostawione — to znaczy nie SAFEARRAY, obiektu lub składowania strukturalnego.Jeśli zmienna nie można przekonwertować na ciąg, wartość ciągu angielski jest zachowywane, wyjaśniający, dlaczego nie zostało utrwalone zmiennej.

W każdym przypadku, gdy zmienne są zachowywane, jest zapisywany nowy rekord, zmiennych i ich wartości.

96t389k3.collapse_all(pl-pl,VS.110).gifUtrwalanie wartości globalnych

Poniższy przykład makro przedstawiono sposób użycia Globals obiekt i jego członków, aby zachować wartości zmiennej po zamknięciu rozwiązania i sposobu uzyskania dostępu do wartości po otwarciu roztworu.On zlicza i wyświetla liczbę razy, ile dodatek został załadowany.

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

Zobacz też

Zadania

Jak: Dodawanie i obsługiwać poleceń

Jak: Tworzenie dodatku

Instruktaż: Tworzenie kreatora

Koncepcje

Wykres modelu obiektu automatyzacji

Inne zasoby

Tworzenia i kontrolowania środowisku systemu Windows.

Tworzenie dodatków i kreatorów

Automatyzacja i rozszerzalność odniesienia