Merge pull request #3389 from lambdageek/bug-43099
[mono.git] / mcs / class / referencesource / System.Xml / System / Xml / Core / AppContextDefaultValues.Defaults.cs
1 // ==++==
2 // 
3 //   Copyright (c) Microsoft Corporation.  All rights reserved.
4 // 
5 // ==--==
6 using System;
7
8 namespace System
9 {
10     internal static partial class AppContextDefaultValues
11     {
12         static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version)
13         {
14             // When defining a new switch  you should add it to the last known version.
15             // For instance, if you are adding a switch in .NET 4.6 (the release after 4.5.2) you should defined your switch
16             // like this:
17             //    if (version <= 40502) ...
18             // This ensures that all previous versions of that platform (up-to 4.5.2) will get the old behavior by default
19             // NOTE: When adding a default value for a switch please make sure that the default value is added to ALL of the existing platforms!
20             // NOTE: When adding a new if statement for the version please ensure that ALL previous switches are enabled (ie. don't use else if)
21             switch (platformIdentifier)
22             {
23                 case ".NETCore":
24                 case ".NETFramework":
25                     {
26                         if (version <= 40502)
27                         {
28                             LocalAppContext.DefineSwitchDefault("Switch.System.Xml.DontThrowOnInvalidSurrogatePairs", true);
29                             LocalAppContext.DefineSwitchDefault("Switch.System.Xml.IgnoreEmptyKeySequences", true);
30                         }
31                         if (version <= 40601)
32                         {
33                             LocalAppContext.DefineSwitchDefault("Switch.System.Xml.IgnoreKindInUtcTimeSerialization", true);
34                         }
35                         break;
36                     }
37                 case "WindowsPhone":
38                 case "WindowsPhoneApp":
39                     {
40                         if (version <= 80100)
41                         {
42                             LocalAppContext.DefineSwitchDefault("Switch.System.Xml.DontThrowOnInvalidSurrogatePairs", true);
43                             LocalAppContext.DefineSwitchDefault("Switch.System.Xml.IgnoreEmptyKeySequences", true);
44                             LocalAppContext.DefineSwitchDefault("Switch.System.Xml.IgnoreKindInUtcTimeSerialization", true);
45                         }
46                         break;
47                     }
48             }
49         }
50     }
51 }