AppContext.SetSwitch(String, Boolean) Yöntem

Tanım

Anahtarın değerini ayarlar.

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)

Parametreler

switchName
String

Anahtarın adı.

isEnabled
Boolean

Anahtarın değeri.

Özel durumlar

switchName, null'e eşittir.

switchName, Empty'e eşittir.

Örnekler

Aşağıdaki kod satırı, eski bir davranışa Switch.AmazingLib.ThrowOnExceptionolanak tanıyan adlı true bir anahtar ayarlar. Kitaplık daha sonra yöntemini çağırarak TryGetSwitch bir kitaplık tüketicisinin anahtarın değerini ayarlayıp ayarlamadığını denetleyebilir.

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

Açıklamalar

AppContext sınıfı, kitaplık yazarlarının kullanıcılar için yeni işlevselliklerden vazgeçmeleri ya da onları devre dışı bırakmaları için tekdüzen bir mekanizma sağlamasına olanak tanır. Bir geri çevirme isteğini iletmek için bileşenler arasında gevşek bir şekilde bağlanmış bir sözleşme oluşturur. Bu özellik genellikle mevcut işlevsellikte bir değişiklik yapıldığında önemlidir. Buna karşılık, yeni işlevler için zaten örtük bir kabul vardır.

yöntemi SetSwitch , bağımlı bir kitaplığın tanımladığı bir anahtarın değerini (her zaman bir Boolean değerdir) bildirmek için bir uygulama (veya kitaplık) tarafından çağrılır. Anahtarı her zaman örtük olarak falsebulunur ve bu da yeni davranışı sağlar. Anahtarı true olarak ayarlamak, geçmişe yönelik davranışı sağlayan özelliği etkinleştirir. Anahtarı açıkça false olarak ayarlamak da yeni davranışı sağlar. Bağımlı kitaplık daha sonra yöntemini çağırarak TryGetSwitch anahtarın değerini denetleyebilir.

Note

Kitaplık tarafından kullanıma sunulan resmi bir sözleşme olduklarından, anahtar adları için tutarlı bir biçim kullanmak yararlı olur. Aşağıda iki açık biçim vardır.

  • Anahtar.adalanı.anahtaradı
  • Anahtar. kitaplık. anahtar adı

.NET Framework üzerinde çalışan uygulamalar için, bir anahtarın değerini program aracılığıyla ayarlamanın yanı sıra ayarlanabilir:

  • Uygulama yapılandırma dosyasının çalışma zamanı< bölümündeki AppContextSwitchOverrides öğesine> anahtar adını ve değerini <ekleyerek.> Örneğin, aşağıdaki değeri Libraries.FPLibrary.UseExactFloatingPointComparisonolan adlı False bir anahtar tanımlar.

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • HKLM\SOFTWARE\Microsoft\ anahtarın adı olan bir dize değeri ekleyerek. NETFramework\AppContext (ve HKLM\SOFTWARE\Wow6432Node\Microsoft\. Kayıt defterindeki NETFramework\AppContext) alt anahtarları. Değeri, yöntemi tarafından Boolean ayrıştırılabilen bir dize gösterimi olmalıdır; başka bir Boolean.Parse ifadeyle "True", "true", "False" veya "false" olmalıdır.

Kayıt defteri girdisi varsa, çağrıldığında isEnabled bağımsız değişkeni tarafından değerinin SetSwitch üzerine yazılır. Diğer bir ifadeyle SetSwitch , yöntemine yapılan en son çağrı kayıt defterinde, uygulama yapılandırma dosyasında veya yöntemine SetSwitch yapılan önceki çağrılarda tanımlanan değeri geçersiz kılar.

Şunlara uygulanır

Ayrıca bkz.