3 // Copyright (c) Microsoft Corporation. All rights reserved.
10 internal static partial class AppContextDefaultValues
13 internal static readonly string SwitchNoAsyncCurrentCulture = "Switch.System.Globalization.NoAsyncCurrentCulture";
14 internal static readonly string SwitchThrowExceptionIfDisposedCancellationTokenSource = "Switch.System.Threading.ThrowExceptionIfDisposedCancellationTokenSource";
15 internal static readonly string SwitchPreserveEventListnerObjectIdentity = "Switch.System.Diagnostics.EventSource.PreserveEventListnerObjectIdentity";
18 // This is a partial method. Platforms can provide an implementation of it that will set override values
19 // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
20 // to it from the code
21 // We are going to have an implementation of this method for the Desktop platform that will read the overrides from app.config, registry and
22 // the shim database. Additional implementation can be provided for other platforms.
23 static partial void PopulateOverrideValuesPartial();
25 static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version)
27 // When defining a new switch you should add it to the last known version.
28 // For instance, if you are adding a switch in .NET 4.6 (the release after 4.5.2) you should defined your switch
30 // if (version <= 40502) ...
31 // This ensures that all previous versions of that platform (up-to 4.5.2) will get the old behavior by default
32 // NOTE: When adding a default value for a switch please make sure that the default value is added to ALL of the existing platforms!
33 // NOTE: When adding a new if statement for the version please ensure that ALL previous switches are enabled (ie. don't use else if)
34 switch (platformIdentifier)
41 AppContext.DefineSwitchDefault(SwitchNoAsyncCurrentCulture, true);
42 AppContext.DefineSwitchDefault(SwitchThrowExceptionIfDisposedCancellationTokenSource, true);
47 case "WindowsPhoneApp":
51 AppContext.DefineSwitchDefault(SwitchNoAsyncCurrentCulture, true);
52 AppContext.DefineSwitchDefault(SwitchThrowExceptionIfDisposedCancellationTokenSource, true);
58 // At this point we should read the overrides if any are defined
59 PopulateOverrideValuesPartial();