Partager via


Globals, interface

Mise à jour : novembre 2007

L'objet Globals est un cache qui permet de stocker les données pour la durée de chaque session dans l'environnement Visual Studio, ainsi qu'entre les sessions à l'aide de la propriété VariablePersists.

Espace de noms :  EnvDTE
Assembly :  EnvDTE (dans EnvDTE.dll)

Syntaxe

<GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")> _
Public Interface Globals

Dim instance As Globals
[GuidAttribute("E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")]
public interface Globals
[GuidAttribute(L"E68A3E0E-B435-4DDE-86B7-F5ADEFC19DF2")]
public interface class Globals
public interface Globals

Notes

L'objet Globals, par exemple, permet aux programmes d'utiliser des variables globales dont les valeurs persistent entre les exécutions. Il permet également à une commande d'implémenter une valeur par défaut s'il demande à l'utilisateur d'entrer des informations chaque fois qu'il exécute. En outre, il permet de modifier son comportement après avoir été appelé un certain nombre de fois.

Les données sont stockées dans l'objet Globals sous forme de paires nom/valeur variant. Ces paires nom/valeur peuvent éventuellement être stockées sur le disque à l'aide de la propriété VariablePersists pour maintenir leur état (comme une chaîne) entre différentes sessions de Visual Studio.

Remarque :

Les variables contenant des objets ou SafeArrays ne peuvent pas être enregistrées. Si la valeur peut être enregistrée en tant que chaîne, elle est enregistrée dans son format natif.

Les compléments ou les macros peuvent également utiliser l'objet Globals pour enregistrer les données définies par l'utilisateur qui sont spécifiques à chaque utilisateur entre des sessions Visual Studio. Ils peuvent également utiliser l'objet Globals pour enregistrer et récupérer les données à partir d'un fichier solution (.sln).

Utilisez la propriété VariableValue pour enregistrer ou lire les valeurs enregistrées avec l'objet Globals.

Remarque :

Les noms de chaînes VariableValue ne peuvent pas contenir les caractères suivants : espace, signe deux-points (:) ou point (.) Si un nom contient un de ces caractères, le message d'erreur « La valeur n'est pas comprise dans la plage attendue » s'affiche.

Exemples

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

Voir aussi

Référence

Membres Globals

EnvDTE, espace de noms

Autres ressources

Persistance d'informations dans des projets et des solutions