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

switchNameadalah null.

switchNameadalah Empty.

Contoh

Baris kode berikut menetapkan 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 keikutsertaan 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 sakelar untuk true mengaktifkannya, yang menyediakan perilaku warisan. Secara eksplisit mengatur sakelar untuk false juga menyediakan perilaku baru. Pustaka dependen kemudian dapat memeriksa nilai sakelar dengan memanggil TryGetSwitch metode .

Catatan

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
  • Switch.library.switchname

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

  • Dengan menambahkan nama dan nilai sakelar 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) di registri. Nilainya harus menjadi representasi string dari yang Boolean dapat diurai 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