Sdílet prostřednictvím


Získání informací o službě z úložiště nastavení

Úložiště nastavení můžete použít k vyhledání všech dostupných služeb nebo k určení, jestli je určitá služba nainstalovaná. Musíte znát typ třídy služby.

Zobrazení seznamu dostupných služeb

  1. Vytvořte projekt VSIX s názvem FindServicesExtension a přidejte vlastní příkaz s názvem FindServicesCommand. Další informace o tom, jak vytvořit vlastní příkaz, najdete v tématu Vytvoření rozšíření pomocí příkazu nabídky.

  2. Do souboru FindServicesCommand.cs přidejte následující direktivy using:

    using System.Collections.Generic;
    using Microsoft.VisualStudio.Settings;
    using Microsoft.VisualStudio.Shell.Settings;
    using System.Windows.Forms;
    
  3. Získejte úložiště nastavení konfigurace a vyhledejte dílčí název Služby. Tato kolekce zahrnuje všechny dostupné služby. MenuItemCommand V metodě odeberte existující kód a nahraďte ho následujícím kódem:

    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. Sestavte projekt a spusťte ladění. Zobrazí se experimentální instance.

  5. V experimentální instanci v nabídce Nástroje klikněte na Invoke FindServicesCommand.

    Mělo by se zobrazit okno se zprávou se seznamem všech služeb.

    K ověření těchto nastavení můžete použít editor registru.

Vyhledání konkrétní služby

Metodu CollectionExists můžete použít také k určení, jestli je nainstalovaná konkrétní služba. Musíte znát typ třídy služby.

  1. V MenuItemCallback projektu, který jste vytvořili v předchozím postupu, vyhledejte v úložišti Services nastavení konfigurace kolekci, která má dílčí kolekci pojmenovanou identifikátorem GUID služby. V tomto případě vyhledáme službu nápovědy.

    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. Sestavte projekt a spusťte ladění.

  3. V experimentální instanci v nabídce Nástroje klikněte na Invoke FindServicesCommand.

    Měla by se zobrazit zpráva s textovou službou nápovědy k dispozici: za ní hodnota True nebo False. K ověření tohoto nastavení můžete použít editor registru, jak je znázorněno v předchozích krocích.