AppContext.SetSwitch(String, Boolean) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 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 false
implisit , 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 adalahFalse
.<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 .