AppContext.SetSwitch(String, Boolean) Metode

Definisi

Mengatur nilai sakelar.

public:
 static void SetSwitch(System::String ^ switchName, bool isEnabled);
public static void SetSwitch(string switchName, bool isEnabled);
static member SetSwitch : string * bool -> unit
Public Shared Sub SetSwitch (switchName As String, isEnabled As Boolean)

Parameter

switchName
String

Nama sakelar.

isEnabled
Boolean

Nilai sakelar.

Pengecualian

switchName adalah null.

switchName adalah Empty.

Contoh

Baris kode berikut mengatur sakelar bernama Switch.AmazingLib.ThrowOnException ke true, yang memungkinkan perilaku warisan. Pustaka kemudian dapat memeriksa apakah konsumen pustaka telah menetapkan nilai sakelar dengan memanggil TryGetSwitch metode .

AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)

Keterangan

Kelas ini AppContext memungkinkan penulis pustaka untuk menyediakan mekanisme penolakan seragam untuk fungsionalitas baru bagi pengguna mereka. Ini menetapkan kontrak yang digabungkan secara longgar antara komponen untuk mengkomunikasikan permintaan penolakan. Kemampuan ini biasanya penting ketika perubahan dilakukan pada fungsionalitas yang ada. Sebaliknya, sudah ada persetujuan implisit untuk fungsionalitas baru.

Metode SetSwitch ini dipanggil oleh aplikasi (atau pustaka) untuk mendeklarasikan nilai sakelar (yang selalu merupakan Boolean nilai) yang ditentukan pustaka dependen. Sakelar selalu secara falseimplisit , yang menyediakan perilaku baru. Mengatur saklar ke true mengaktifkan fungsi tersebut, yang menyediakan fungsi warisan. Dengan mengatur pengalih ke false secara eksplisit, perilaku baru juga akan disediakan. Pustaka dependen kemudian dapat memeriksa nilai sakelar dengan memanggil TryGetSwitch metode .

Note

Ini bermanfaat untuk menggunakan format yang konsisten untuk nama switch, karena mereka adalah kontrak formal yang diekspos oleh pustaka. Berikut ini adalah dua format yang jelas.

  • Switch.namespace.switchname
  • Beralih. pustaka. switchname

Untuk aplikasi yang berjalan di .NET Framework, selain mengatur nilai switch secara terprogram, aplikasi juga dapat diatur:

  • Dengan menambahkan nama sakelar dan nilai ke <elemen AppContextSwitchOverrides> di bagian <runtime> file konfigurasi aplikasi. Misalnya, berikut ini mendefinisikan sakelar bernama Libraries.FPLibrary.UseExactFloatingPointComparison yang nilainya adalah False.

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Dengan menambahkan nilai string yang namanya adalah nama sakelar ke HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (dan HKLM\SOFTWARE\Wow6432Node\Microsoft\. Subkuntang NETFramework\AppContext) dalam registri. Nilainya harus berupa representasi string dari yang Boolean dapat diuraikan oleh Boolean.Parse metode; yaitu, harus "True", "true", "False", atau "false".

Jika entri registri ada, nilainya ditimpa oleh isEnabled argumen saat SetSwitch dipanggil. Artinya, panggilan terbaru ke SetSwitch metode mengambil alih nilai yang ditentukan dalam registri, dalam file konfigurasi aplikasi, atau dengan panggilan sebelumnya ke SetSwitch metode .

Berlaku untuk

Lihat juga