Bagikan melalui


Menulis ke Penyimpanan Pengaturan Pengguna

Pengaturan pengguna adalah pengaturan yang dapat ditulis seperti yang ada dalam dialog Alat /Opsi , jendela properti, dan kotak dialog tertentu lainnya. Ekstensi Visual Studio dapat menggunakannya untuk menyimpan data dalam jumlah kecil. Panduan ini menunjukkan cara menambahkan Notepad ke Visual Studio sebagai alat eksternal dengan membaca dari dan menulis ke penyimpanan pengaturan pengguna.

Menulis ke Penyimpanan Pengaturan Pengguna

  1. Buat proyek VSIX bernama User Pengaturan StoreExtension lalu tambahkan perintah kustom bernama User Pengaturan StoreCommand. Untuk informasi selengkapnya tentang cara membuat perintah kustom, lihat Membuat Ekstensi dengan Perintah Menu

  2. Di Pengguna Pengaturan StoreCommand.cs, tambahkan yang berikut ini menggunakan direktif:

    using System.Collections.Generic;
    using Microsoft.VisualStudio.Settings;
    using Microsoft.VisualStudio.Shell.Settings;
    
  3. Di MenuItemCallback, hapus isi metode dan dapatkan penyimpanan pengaturan pengguna, sebagai berikut:

    private void MenuItemCallback(object sender, EventArgs e)
    {
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
    }
    
  4. Sekarang cari tahu apakah Notepad sudah ditetapkan sebagai alat eksternal. Anda perlu melakukan iterasi melalui semua alat eksternal untuk menentukan apakah pengaturan ToolCmd adalah "Notepad", sebagai berikut:

    private void MenuItemCallback(object sender, EventArgs e)
    {
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
    
        // Find out whether Notepad is already an External Tool.
        int toolCount = userSettingsStore.GetInt32("External Tools", "ToolNumKeys");
        bool hasNotepad = false;
        CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;
        for (int i = 0; i < toolCount; i++)
        {
            if (Compare.IndexOf(userSettingsStore.GetString("External Tools", "ToolCmd" + i), "Notepad", CompareOptions.IgnoreCase) >= 0)
            {
                hasNotepad = true;
                break;
            }
        }
    }
    
    
  5. Jika Notepad belum ditetapkan sebagai alat eksternal, atur sebagai berikut:

    private void MenuItemCallback(object sender, EventArgs e)
    {
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
    
        // Find out whether Notepad is already installed.
        int toolCount = userSettingsStore.GetInt32("External Tools", "ToolNumKeys");
        bool hasNotepad = false;
        CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;
        for (int i = 0; i < toolCount; i++)
        {
            if (Compare.IndexOf(userSettingsStore.GetString("External Tools", "ToolCmd" + i), "Notepad", CompareOptions.IgnoreCase) >= 0)
            {
                hasNotepad = true;
                break;
            }
        }
    
        string message = (hasNotepad) ? "Notepad already installed" : "Installing Notepad";
         if (!hasNotepad)
        {
            userSettingsStore.SetString("External Tools", "ToolTitle" + toolCount, "&Notepad");
            userSettingsStore.SetString("External Tools", "ToolCmd" + toolCount, "C:\\Windows\\notepad.exe");
            userSettingsStore.SetString("External Tools", "ToolArg" + toolCount, "");
            userSettingsStore.SetString("External Tools", "ToolDir" + toolCount, "$(ProjectDir)");
            userSettingsStore.SetString("External Tools", "ToolSourceKey" + toolCount, "");
            userSettingsStore.SetUInt32("External Tools", "ToolOpt" + toolCount, 0x00000011);
    
            userSettingsStore.SetInt32("External Tools", "ToolNumKeys", toolCount + 1);
        }
    }
    
  6. Menguji kodenya. Ingatlah bahwa ia menambahkan Notepad sebagai Alat Eksternal, jadi Anda harus mengembalikan registri sebelum menjalankannya untuk kedua kalinya.

  7. Buat kode dan mulai penelusuran kesalahan.

  8. Pada menu Alat, klik Panggil Pengguna Pengaturan StoreKomand. Ini akan menambahkan Notepad ke menu Alat .

  9. Sekarang Anda akan melihat Notepad pada menu Alat / Opsi, dan mengklik Notepad akan memunculkan instans Notepad.