//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ namespace System.ServiceModel.Configuration { using System.Configuration; using System.Runtime; using System.Security; using System.ServiceModel.Diagnostics; public sealed partial class DiagnosticSection : ConfigurationSection { // These three constructors are used by the configuration system. public DiagnosticSection() : base() { } [ConfigurationProperty(ConfigurationStrings.WmiProviderEnabled, DefaultValue = false)] public bool WmiProviderEnabled { get { return (bool)base[ConfigurationStrings.WmiProviderEnabled]; } set { base[ConfigurationStrings.WmiProviderEnabled] = value; } } [ConfigurationProperty(ConfigurationStrings.MessageLogging, Options = ConfigurationPropertyOptions.None)] public MessageLoggingElement MessageLogging { get { return (MessageLoggingElement)base[ConfigurationStrings.MessageLogging]; } } [ConfigurationProperty(ConfigurationStrings.EndToEndTracing, Options = ConfigurationPropertyOptions.None)] public EndToEndTracingElement EndToEndTracing { get { return (EndToEndTracingElement)base[ConfigurationStrings.EndToEndTracing]; } } [ConfigurationProperty(ConfigurationStrings.PerformanceCounters, DefaultValue = PerformanceCounterScope.Default)] [ServiceModelEnumValidator(typeof(PerformanceCounterScopeHelper))] public PerformanceCounterScope PerformanceCounters { get { return (PerformanceCounterScope)base[ConfigurationStrings.PerformanceCounters]; } set { base[ConfigurationStrings.PerformanceCounters] = value; } } [ConfigurationProperty(ConfigurationStrings.EtwProviderId, DefaultValue = "{c651f5f6-1c0d-492e-8ae1-b4efd7c9d503}")] [StringValidator(MinLength = 32)] public string EtwProviderId { get { return (string)base[ConfigurationStrings.EtwProviderId]; } set { base[ConfigurationStrings.EtwProviderId] = value; } } internal static DiagnosticSection GetSection() { return (DiagnosticSection)ConfigurationHelpers.GetSection(ConfigurationStrings.DiagnosticSectionPath); } [Fx.Tag.SecurityNote(Critical = "Calls Critical method UnsafeGetSection which elevates in order to fetch config." + "Caller must guard access to resultant config section.")] [SecurityCritical] internal static DiagnosticSection UnsafeGetSection() { return (DiagnosticSection)ConfigurationHelpers.UnsafeGetSection(ConfigurationStrings.DiagnosticSectionPath); } [Fx.Tag.SecurityNote(Critical = "Calls Critical method UnsafeGetSection which elevates in order to fetch config." + "Caller must guard access to resultant config section.")] [SecurityCritical] internal static DiagnosticSection UnsafeGetSectionNoTrace() { return (DiagnosticSection)ConfigurationHelpers.UnsafeGetSectionNoTrace(ConfigurationStrings.DiagnosticSectionPath); } internal bool IsEtwProviderIdFromConfigFile() { return PropertyValueOrigin.Default != this.ElementInformation.Properties[ConfigurationStrings.EtwProviderId].ValueOrigin; } } }