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 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.UseExactFloatingPointComparisonyang 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) 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 .