AppContext.SetSwitch(String, Boolean) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает значение переключателя.
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)
Параметры
- switchName
- String
Имя переключателя.
- isEnabled
- Boolean
Значение переключателя.
Исключения
switchName
имеет значение null
.
switchName
имеет значение Empty.
Примеры
В следующей строке кода задается параметр с true
именем Switch.AmazingLib.ThrowOnException
, который обеспечивает устаревшее поведение. Затем библиотека может проверка, задал ли потребитель библиотеки значение параметра, вызвав TryGetSwitch метод .
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)
Комментарии
Класс AppContext позволяет авторам библиотек обеспечить единый механизм отказа от новых функций для своих пользователей. Он устанавливает слабо связанный контракт между компонентами для передачи запроса на явный отказ. Эта возможность обычно важна при внесении изменений в существующие функции. В свою очередь, режим неявного согласия для новых функциональных возможностей уже существует.
Метод SetSwitch вызывается приложением (или библиотекой) для объявления значения параметра (который всегда является значением Boolean ), определяемого зависимой библиотекой. Параметр всегда является неявным false
, что обеспечивает новое поведение. Если для параметра задано значение true
, он включается, что обеспечивает устаревшее поведение. Явное задание переключателя в false
также обеспечивает новое поведение. Затем зависимая библиотека может проверка значение параметра, вызвав TryGetSwitch метод .
Примечание
Для имен переключателей полезно использовать согласованный формат, так как они являются формальным контрактом, предоставляемым библиотекой. Ниже приведены два очевидных формата:
- параметр. пространство_именимя_параметра
- параметр.библиотека.имя_параметра
Для приложений, работающих на платформа .NET Framework, помимо установки значения переключателя программным способом, его также можно задать:
Путем добавления имени и значения переключателя в <элемент AppContextSwitchOverrides> в <разделе среды выполнения> файла конфигурации приложения. Например, следующий код определяет параметр с именем
Libraries.FPLibrary.UseExactFloatingPointComparison
, значение которого равноFalse
.<configuration> <runtime> <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" /> </runtime> </configuration>
Путем добавления строкового значения, имя которого является именем коммутатора, в HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (и HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\AppContext) подразделов в реестре. Его значение должно быть строковым представлением Boolean объекта , которое может быть проанализировано методом Boolean.Parse ; то есть оно должно быть "True", "true", "False" или "false".
Если запись реестра существует, ее значение перезаписывается аргументом isEnabled
при SetSwitch вызове . То есть последний вызов SetSwitch метода переопределяет значение, определенное в реестре, в файле конфигурации приложения или при предыдущих вызовах SetSwitch метода.