Ich versuche, den Kompatibilitätsschalter "Switch.System.Xml.IgnoreEmptyKeySequences" aus einem Eintrag in einer Datei app.config (oder web.config) zu setzen, aber die Überschreibung erscheint ignoriert werden. Um die Möglichkeit einer seltsamen Konfiguration meines bestehenden Projekts zu entfernen, habe ich in VS2015 ein brandneues .Net 4.6 Web Forms Projekt (und zugehöriges Testprojekt) erstellt..Net 4.6 AppContextSwitchOverrides nicht einstellen Schalter in Config
ich folgende bin der Microsoft Guidance für AppContext schaltet https://msdn.microsoft.com/en-us/library/mt298997(v=vs.110).aspx und https://msdn.microsoft.com/en-us/library/mt270286(v=vs.110).aspx
Die app.config-Datei wird wie folgt dar:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Xml.IgnoreEmptyKeySequences=true"/>
</runtime>
</configuration>
Der Code, den ich um den Wert zu lesen bin mit ist:
bool valueWasFound;
bool valueFromContext;
string switchString = "Switch.System.Xml.IgnoreEmptyKeySequences";
valueWasFound = AppContext.TryGetSwitch(switchString, out valueFromContext);
Und trotzdem bekomme ich konsequent false
für beide valueWasFound
und valueFromContext
.
Ich habe dies mit anderen Switch-Werten mit dem gleichen Ergebnis versucht.
Ich finde, dass wenn ich den Schalter im Code festgelegt mit
AppContext.SetSwitch("Switch.System.Xml.IgnoreEmptyKeySequences", true);
Dann wird der Schalter eingestellt wird, wie erwartet (das heißt ich true
sowohl für valueWasFound
und valueFromContext
).
Aber ich würde es vorziehen, sehr viel diese Einstellung vornehmen, in der App.Config/web.config
Alle Ideen, wie ich dies sehr geschätzt würde zu arbeiten.
Ich sehe das gleiche Verhalten hier, aber mit dem Schalter _Switch.System.IdentityModel.DisableMultipleDNSEntriesInSANCertificate_. Die Einstellung in Web.config (IIS-Anwendung) wird ignoriert und "TryGetSwitch" liefert das gleiche Ergebnis wie Sie. Die Einstellung im Code scheint zu funktionieren. – arfbtwn