TraceSwitch.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / Diagnostics / TraceSwitch.cs / 1 / TraceSwitch.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

/* 
 */ 

namespace System.Diagnostics { 
    using System;
    using System.ComponentModel;
    using System.Security;
    using System.Security.Permissions; 

    ///  
    ///    Provides a multi-level switch to enable or disable tracing 
    ///       and debug output for a compiled application or framework.
    ///  
    [SwitchLevel(typeof(TraceLevel))]
    public class TraceSwitch : Switch {

        ///  
        /// Initializes a new instance of the  class.
        ///  
        public TraceSwitch(string displayName, string description) 
            : base(displayName, description) {
        } 

        public TraceSwitch(string displayName, string description, string defaultSwitchValue)
            : base(displayName, description, defaultSwitchValue) { }
 
        /// 
        ///    Gets or sets the trace 
        ///       level that specifies what messages to output for tracing and debugging. 
        /// 
        public TraceLevel Level { 
            get {
                return (TraceLevel)SwitchSetting;
            }
 
            [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
            set { 
                if (value < TraceLevel.Off || value > TraceLevel.Verbose) 
                    throw new ArgumentException(SR.GetString(SR.TraceSwitchInvalidLevel));
                SwitchSetting = (int)value; 
            }
        }

        ///  
        ///    Gets a value
        ///       indicating whether the  is set to 
        ///    , , , or 
        ///    .
        ///  
        public bool TraceError {
            get {
                return (Level >= TraceLevel.Error);
            } 
        }
 
        ///  
        ///    Gets a value
        ///       indicating whether the  is set to 
        ///    , , or .
        /// 
        public bool TraceWarning {
            get { 
                return (Level >= TraceLevel.Warning);
            } 
        } 

        ///  
        ///    Gets a value
        ///       indicating whether the  is set to
        ///     or .
        ///  
        public bool TraceInfo {
            get { 
                return (Level >= TraceLevel.Info); 
            }
        } 

        /// 
        ///    Gets a value
        ///       indicating whether the  is set to 
        ///    .
        ///  
        public bool TraceVerbose { 
            get {
                return (Level == TraceLevel.Verbose); 
            }
        }

        ///  
        ///    
        ///       Update the level for this switch. 
        ///     
        /// 
        protected override void OnSwitchSettingChanged() { 
            int level = SwitchSetting;
            if (level < (int)TraceLevel.Off) {
                Trace.WriteLine(SR.GetString(SR.TraceSwitchLevelTooLow, DisplayName));
                SwitchSetting = (int)TraceLevel.Off; 
            }
            else if (level > (int)TraceLevel.Verbose) { 
                Trace.WriteLine(SR.GetString(SR.TraceSwitchLevelTooHigh, DisplayName)); 
                SwitchSetting = (int)TraceLevel.Verbose;
            } 
        }

        protected override void OnValueChanged() {
            SwitchSetting = (int) Enum.Parse(typeof(TraceLevel), Value, true); 
        }
    } 
} 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

/* 
 */ 

namespace System.Diagnostics { 
    using System;
    using System.ComponentModel;
    using System.Security;
    using System.Security.Permissions; 

    ///  
    ///    Provides a multi-level switch to enable or disable tracing 
    ///       and debug output for a compiled application or framework.
    ///  
    [SwitchLevel(typeof(TraceLevel))]
    public class TraceSwitch : Switch {

        ///  
        /// Initializes a new instance of the  class.
        ///  
        public TraceSwitch(string displayName, string description) 
            : base(displayName, description) {
        } 

        public TraceSwitch(string displayName, string description, string defaultSwitchValue)
            : base(displayName, description, defaultSwitchValue) { }
 
        /// 
        ///    Gets or sets the trace 
        ///       level that specifies what messages to output for tracing and debugging. 
        /// 
        public TraceLevel Level { 
            get {
                return (TraceLevel)SwitchSetting;
            }
 
            [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
            set { 
                if (value < TraceLevel.Off || value > TraceLevel.Verbose) 
                    throw new ArgumentException(SR.GetString(SR.TraceSwitchInvalidLevel));
                SwitchSetting = (int)value; 
            }
        }

        ///  
        ///    Gets a value
        ///       indicating whether the  is set to 
        ///    , , , or 
        ///    .
        ///  
        public bool TraceError {
            get {
                return (Level >= TraceLevel.Error);
            } 
        }
 
        ///  
        ///    Gets a value
        ///       indicating whether the  is set to 
        ///    , , or .
        /// 
        public bool TraceWarning {
            get { 
                return (Level >= TraceLevel.Warning);
            } 
        } 

        ///  
        ///    Gets a value
        ///       indicating whether the  is set to
        ///     or .
        ///  
        public bool TraceInfo {
            get { 
                return (Level >= TraceLevel.Info); 
            }
        } 

        /// 
        ///    Gets a value
        ///       indicating whether the  is set to 
        ///    .
        ///  
        public bool TraceVerbose { 
            get {
                return (Level == TraceLevel.Verbose); 
            }
        }

        ///  
        ///    
        ///       Update the level for this switch. 
        ///     
        /// 
        protected override void OnSwitchSettingChanged() { 
            int level = SwitchSetting;
            if (level < (int)TraceLevel.Off) {
                Trace.WriteLine(SR.GetString(SR.TraceSwitchLevelTooLow, DisplayName));
                SwitchSetting = (int)TraceLevel.Off; 
            }
            else if (level > (int)TraceLevel.Verbose) { 
                Trace.WriteLine(SR.GetString(SR.TraceSwitchLevelTooHigh, DisplayName)); 
                SwitchSetting = (int)TraceLevel.Verbose;
            } 
        }

        protected override void OnValueChanged() {
            SwitchSetting = (int) Enum.Parse(typeof(TraceLevel), Value, true); 
        }
    } 
} 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK