Lors de l’obtention des informations de Service à partir du magasin de paramètresGetting Service Information from the Settings Store

Vous pouvez utiliser le stockage de paramètres pour rechercher tous les services disponibles ou pour déterminer si un service particulier est installé.You can use the settings store to find all available services or to determine whether a particular service is installed. Vous devez connaître le type de la classe de service.You must know the type of the service class.

Pour répertorier les services disponiblesTo list the available services

  1. Créez un projet VSIX nommé FindServicesExtension, puis ajoutez une commande personnalisée nommée FindServicesCommand.Create a VSIX project named FindServicesExtension and then add a custom command named FindServicesCommand. Pour plus d’informations sur la création d’une commande personnalisée, consultez création d’une Extension avec une commande de MenuFor more information about how to create a custom command, see Creating an Extension with a Menu Command

  2. Dans FindServicesCommand.cs, ajoutez le code suivant à l’aide des instructions :In FindServicesCommand.cs, add the following using statements:

    using System.Collections.Generic;  
    using Microsoft.VisualStudio.Settings;  
    using Microsoft.VisualStudio.Shell.Settings;  
    using System.Windows.Forms;  
    
  3. Obtenir le magasin de paramètres de configuration, puis recherchez le sous-groupe nommé Services.Get the configuration settings store, then find the subcollection named Services. Cette collection contient tous les services disponibles.This collection includes all the available services. Dans la méthode MenuItemCommand, supprimez le code existant et remplacez-le par les éléments suivants :In the MenuItemCommand method, remove the existing code and replace it with the following:

    private void MenuItemCallback(object sender, EventArgs e)  
    {  
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);  
        SettingsStore configurationSettingsStore = settingsManager.GetReadOnlySettingsStore(SettingsScope.Configuration);  
        string message = "Available services:\n";  
        IEnumerable<string> collection = configurationSettingsStore.GetSubCollectionNames("Services");  
        int n = 0;  
        foreach (string service in collection)  
        {  
            message += configurationSettingsStore.GetString("Services\\" + service, "Name", "Unknown") + "\n";  
        }  
    
        MessageBox.Show(message);  
    }  
    
  4. Générez le projet et commencez le débogage.Build the project and start debugging. L’instance expérimentale s’affiche.The experimental instance appears.

  5. Dans l’instance expérimentale, sur le outils menu, cliquez sur FindServicesCommand d’appeler.In the experimental instance, on the Tools menu, click Invoke FindServicesCommand.

    Vous devez voir une boîte de message qui répertorie tous les services.You should see a message box listing all the services.

    Pour vérifier ces paramètres, vous pouvez utiliser l’Éditeur du Registre.To verify these settings, you can use the registry editor.

Recherche d’un Service spécifiqueFinding a Specific Service

Vous pouvez également utiliser le CollectionExists méthode pour déterminer si un service particulier est installé.You can also use the CollectionExists method to determine whether a particular service is installed. Vous devez connaître le type de la classe de service.You must know the type of the service class.

  1. Dans MenuItemCallback du projet que vous avez créé dans la procédure précédente, recherche dans le magasin de paramètres de configuration pour le Services collection qui possède le sous-groupe nommé par le GUID du service.In the MenuItemCallback of the project you created in the previous procedure, search the configuration settings store for the Services collection that has the subcollection named by the GUID of the service. Dans ce cas, nous allons examiner pour le service d’aide.In this case we will look for the Help service.

    private void MenuItemCallback(object sender, EventArgs e)  
    {  
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);  
        SettingsStore configurationSettingsStore = settingsManager.GetReadOnlySettingsStore(SettingsScope.Configuration);  
        string helpServiceGUID = typeof(SVsHelpService).GUID.ToString("B").ToUpper();  
        bool hasHelpService = configurationSettingsStore.CollectionExists("Services\\" + helpServiceGUID);  
        string message = "Help Service Available: " + hasHelpService;  
    
        MessageBox.Show(message);  
    }  
    
  2. Générez le projet et commencez le débogage.Build the project and start debugging.

  3. Dans l’instance expérimentale, sur le outils menu, cliquez sur FindServicesCommand d’appeler.In the experimental instance, on the Tools menu, click Invoke FindServicesCommand.

    Vous devez voir un message avec le texte aider les services disponibles : suivie True ou False.You should see a message with the text Help Service Available: followed by True or False. Pour vérifier ce paramètre, vous pouvez utiliser un éditeur du Registre, comme indiqué dans les étapes précédentes.To verify this setting, you can use a registry editor, as shown in the earlier steps.