AppContext.SetSwitch(String, Boolean) Metódus

Definíció

Egy kapcsoló értékét állítja be.

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)

Paraméterek

switchName
String

A kapcsoló neve.

isEnabled
Boolean

A kapcsoló értéke.

Kivételek

switchName az null.

switchName az Empty.

Példák

Az alábbi kódsor beállít egy kapcsolót Switch.AmazingLib.ThrowOnExceptiontrue, amely egy régi viselkedést tesz lehetővé. A kódtár ezután a metódus meghívásával ellenőrizheti, hogy egy erőforrástár-fogyasztó beállította-e a TryGetSwitch kapcsoló értékét.

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

Megjegyzések

Az AppContext osztály lehetővé teszi a könyvtárírók számára, hogy egységes leiratkozási mechanizmust biztosítsanak az új funkciókhoz a felhasználók számára. Lazán összekapcsolt szerződést hoz létre az összetevők között a leiratkozási kérelem közlése érdekében. Ez a képesség általában fontos a meglévő funkciók módosításakor. Ezzel szemben már implicit módon is engedélyezve van az új funkciók használata.

A SetSwitch metódust egy alkalmazás (vagy egy tár) hívja meg egy kapcsoló értékének deklarálásához (amely mindig egy Boolean érték), amelyet egy függő tár határoz meg. A kapcsoló mindig implicit módon falseműködik, ami biztosítja az új viselkedést. A kapcsoló true beállítása engedélyezi, ami a korábbi viselkedést biztosítja. Az új viselkedést az is biztosítja, ha explicit módon beállítja a kapcsolót false-ra. A függő kódtár ezután a metódus meghívásával TryGetSwitch ellenőrizheti a kapcsoló értékét.

Note

Érdemes konzisztens formátumot használni a kapcsolónevekhez, mivel ezek egy kódtár által közzétett hivatalos szerződés. Az alábbiak két nyilvánvaló formátumot jelentenek.

  • Kapcsoló.névtér.kapcsolónév
  • Kapcsoló.könyvtár.kapcsolónév

A .NET-keretrendszeren futó alkalmazások esetében a kapcsoló programozott módon történő beállítása mellett a következőket is beállíthatja:

  • Ha hozzáadja a kapcsoló nevét és értékét az <AppContextSwitchOverrides> elemhez egy <alkalmazáskonfigurációs fájl futtatókörnyezeti> szakaszában. Az alábbiak például egy olyan kapcsolót Libraries.FPLibrary.UseExactFloatingPointComparison határoznak meg, amelynek az értéke .False

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Ha hozzáad egy sztringértéket, amelynek a neve a kapcsoló neve a HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (és HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\AppContext) alkulcsok a beállításjegyzékben. Az értéknek egy metódussal Boolean elemezhető karakterlánc-ábrázolásnak Boolean.Parse kell lennie, vagyis "Igaz", "igaz", "Hamis" vagy "hamis" értéknek kell lennie.

Ha a beállításjegyzék-bejegyzés létezik, annak értékét az isEnabled argumentum felülírja, amikor SetSwitch meghívják. Ez azt jelzi, hogy a SetSwitch metódus legutóbbi hívása felülírja a beállításjegyzékben, egy alkalmazáskonfigurációs fájlban vagy a SetSwitch metódus korábbi hívásaiban definiált értéket.

A következőre érvényes:

Lásd még