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 değeridir.

switchName, Empty değeridir.

Örnekler

Aşağıdaki kod satırı, eski bir davranışı etkinleştiren adlı Switch.AmazingLib.ThrowOnExceptiontruebir 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

sınıfı, AppContext kitaplık yazarlarının kullanıcıları için yeni işlevler için tekdüzen bir geri çevirme mekanizması 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, mevcut işlevsellikte bir değişiklik yapıldığında genellikle önemlidir. Buna karşılık, yeni işlevler için zaten örtük bir katılım vardır.

SetSwitch yöntemi, 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 falseşeklindedir ve bu da yeni davranışı sağlar. anahtarı olarak true ayarlamak, eski davranışı sağlayan ayarı etkinleştirir. Anahtarı açıkça olarak olarak false ayarlamak da yeni davranışı sağlar. Bağımlı kitaplık daha sonra yöntemini çağırarak TryGetSwitch anahtarın değerini denetleyebilir.

Not

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ğıdaki iki belirgin biçimdir.

  • Değiştir'i seçin. ad alanı. switchname
  • Değiştir'i seçin. kitaplığını seçin. switchname

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

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

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • HKLM\SOFTWARE\Microsoft\ anahtarına 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.Parse ayrıştırılabilir bir Boolean dize gösterimi olmalıdır; başka bir ifadeyle , "True", "true", "False" veya "false" olmalıdır.

Kayıt defteri girdisi varsa, çağrıldığında SetSwitch bağımsız değişkeni tarafından değerinin isEnabled üzerine yazılır. Diğer bir ifadeyle, yöntemine yapılan SetSwitch 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.