File: System\ServiceModel\Diagnostics\MachineSettingsSection.cs
Project: ndp\cdf\src\WCF\SMDiagnostics\SMDiagnostics.csproj (SMDiagnostics)
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------
 
namespace System.ServiceModel.Configuration
{
    using System.Configuration;
 
    internal class MachineSettingsSection : ConfigurationSection
    {
        static bool enableLoggingKnownPii;
        static bool hasInitialized = false;
        static object syncRoot = new object();
 
        const string enableLoggingKnownPiiKey = "enableLoggingKnownPii";
        ConfigurationPropertyCollection properties;
 
        protected override ConfigurationPropertyCollection Properties
        {
            get
            {
                if (this.properties == null)
                {
                    ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
                    properties.Add(new ConfigurationProperty(MachineSettingsSection.enableLoggingKnownPiiKey, typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
                    this.properties = properties;
                }
                return this.properties;
            }
        }
 
        public static bool EnableLoggingKnownPii
        {
            get
            {
                if (!hasInitialized)
                {
                    lock (syncRoot)
                    {
                        if (!hasInitialized)
                        {
                            MachineSettingsSection machineSettingsSection = (MachineSettingsSection)ConfigurationManager.GetSection("system.serviceModel/machineSettings");
                            enableLoggingKnownPii = (bool)machineSettingsSection[MachineSettingsSection.enableLoggingKnownPiiKey];
                            hasInitialized = true;
                        }
                    }
                }
 
                return enableLoggingKnownPii;
            }
        }
    }
}