Я пытаюсь установить переключатель совместимости "Switch.System.Xml.IgnoreEmptyKeySequences" из записи в файле app.config(или web.config), но переопределение, похоже, игнорируется. Чтобы удалить возможность какой-либо странной конфигурации моего существующего проекта, я создал совершенно новый проект .Net 4.6 Web Forms (и связанный с ним тестовый проект) в VS2015.
Я следую указаниям microsoft для коммутаторов AppContext https://msdn.microsoft.com/en-us/library/mt298997(v=vs.110).aspx и https://msdn.microsoft.com/en-us/library/mt270286(v=vs.110).aspx
Файл app.config выглядит следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Xml.IgnoreEmptyKeySequences=true"/>
</runtime>
</configuration>
Код, который я использую для чтения значения:
bool valueWasFound;
bool valueFromContext;
string switchString = "Switch.System.Xml.IgnoreEmptyKeySequences";
valueWasFound = AppContext.TryGetSwitch(switchString, out valueFromContext);
И все же я последовательно получаю false
для valueWasFound
и valueFromContext
.
Я пробовал это с другими значениями переключателей с тем же результатом.
Я нахожу, что если я установил переключатель в код, используя
AppContext.SetSwitch("Switch.System.Xml.IgnoreEmptyKeySequences", true);
Затем переключатель устанавливается как ожидаемый (т.е. я получаю true
для valueWasFound
и valueFromContext
).
Но я бы очень хотел установить это в App.Config/web.config
Любые идеи о том, как я получаю это, будут очень благодарны.