Updates referencesource to .NET 4.7
[mono.git] / mcs / class / referencesource / System.ServiceModel / System / ServiceModel / ServiceModelAppSettings.cs
index 19fba5c99a817ccc5faa6fddf9da398470c4d950..950c5fecdd4f9df1dcac1e31771dda0baa3adf67 100644 (file)
@@ -16,14 +16,17 @@ namespace System.ServiceModel
         internal const string EnsureUniquePerformanceCounterInstanceNamesString = "wcf:ensureUniquePerformanceCounterInstanceNames";
         internal const string UseConfiguredTransportSecurityHeaderLayoutString = "wcf:useConfiguredTransportSecurityHeaderLayout";
         internal const string UseBestMatchNamedPipeUriString = "wcf:useBestMatchNamedPipeUri";
+        internal const string DisableOperationContextAsyncFlowString = "wcf:disableOperationContextAsyncFlow";
         const bool DefaultHttpTransportPerFactoryConnectionPool = false;
         const bool DefaultEnsureUniquePerformanceCounterInstanceNames = false;
         const bool DefaultUseConfiguredTransportSecurityHeaderLayout = false;
         const bool DefaultUseBestMatchNamedPipeUri = false;
+        const bool DefaultDisableOperationContextAsyncFlow = true;
         static bool httpTransportPerFactoryConnectionPool;
         static bool ensureUniquePerformanceCounterInstanceNames;
         static bool useConfiguredTransportSecurityHeaderLayout;
         static bool useBestMatchNamedPipeUri;
+        static bool disableOperationContextAsyncFlow;
         static volatile bool settingsInitalized = false;
         static object appSettingsLock = new object();
 
@@ -47,6 +50,15 @@ namespace System.ServiceModel
             }
         }
 
+        internal static bool DisableOperationContextAsyncFlow
+        {
+            get
+            {
+                EnsureSettingsLoaded();
+                return disableOperationContextAsyncFlow;
+            }
+        }
+
         internal static bool UseConfiguredTransportSecurityHeaderLayout
         {
             get
@@ -97,6 +109,11 @@ namespace System.ServiceModel
                                 ensureUniquePerformanceCounterInstanceNames = DefaultEnsureUniquePerformanceCounterInstanceNames;
                             }
 
+                            if ((appSettingsSection == null) || !bool.TryParse(appSettingsSection[DisableOperationContextAsyncFlowString], out disableOperationContextAsyncFlow))
+                            {
+                                disableOperationContextAsyncFlow = DefaultDisableOperationContextAsyncFlow;
+                            }
+                            
                             if ((appSettingsSection == null) || !bool.TryParse(appSettingsSection[UseConfiguredTransportSecurityHeaderLayoutString], out useConfiguredTransportSecurityHeaderLayout))
                             {
                                 useConfiguredTransportSecurityHeaderLayout = DefaultUseConfiguredTransportSecurityHeaderLayout;