Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Base / System / Diagnostics / PresentationTraceSources.cs / 1 / PresentationTraceSources.cs
/****************************************************************************\ * * File: PresentationTraceSources.cs * * This class provides a public interface to access TraceSources for * enabling/disabling/filtering of trace messages by area. * * The other portion of this partial class is generated using * genTraceSource.pl and AvTraceMessages.txt * * Copyright (C) by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System.Collections.Generic; using System.Security; using System.Security.Permissions; using MS.Internal; using System.Windows; namespace System.Diagnostics { ////// PresentationTraceLevel - Enum which describes how much detail to trace about a particular object. /// public enum PresentationTraceLevel { ////// Trace no additional information. /// None, ////// Trace some additional information. /// Low, ////// Trace a medium amount of additional information. /// Medium, ////// Trace all available additional information. /// High, } ////// Helper class for retrieving TraceSources /// public static partial class PresentationTraceSources { //----------------------------------------------------- // // Public Properties // //----------------------------------------------------- ////// DependencyProperty for TraceLevel property. /// public static readonly DependencyProperty TraceLevelProperty = DependencyProperty.RegisterAttached( "TraceLevel", typeof(PresentationTraceLevel), typeof(PresentationTraceSources)); ////// Reads the attached property TraceLevel from the given element. /// public static PresentationTraceLevel GetTraceLevel(object element) { return TraceLevelStore.GetTraceLevel(element); } ////// Writes the attached property TraceLevel to the given element. /// public static void SetTraceLevel(object element, PresentationTraceLevel traceLevel) { TraceLevelStore.SetTraceLevel(element, traceLevel); } //----------------------------------------------------- // // Public Methods // //------------------------------------------------------ ////// Refresh TraceSources (re-read config file), creating if necessary. /// // Note: Better would be to separate enable from the Refresh method. public static void Refresh() { // Let AvTrace know that an explicit Refresh has been called. AvTrace.OnRefresh(); // Re-read the .config files System.Diagnostics.Trace.Refresh(); // Initialize any traces classes if needed if (TraceRefresh != null) { TraceRefresh(); } } internal static event TraceRefreshEventHandler TraceRefresh; ////// Critical: /// 1) Asserts for UMC to set trace level. /// /// TreatAsSafe: /// 1) The code path is only invoked when under a debugger /// if the caller can attach a debugger they already have /// unlimited access to the process. Also the only inputs /// to the assert are simply a label for the name. /// [SecurityCritical, SecurityTreatAsSafe] private static TraceSource CreateTraceSource(string sourceName) { // Create the trace source. Whether or not it will actually // trace anything is a decision of the trace source, e.g. it // depends on the app.config file settings. TraceSource source = new TraceSource(sourceName); // If we're attached to the debugger, ensure that at least // warnings/errors are getting traced. if (source.Switch.Level == SourceLevels.Off && AvTrace.IsDebuggerAttached()) { // we need to assert as PT callers under a debugger can invoke this code path // with out having the needed permission to peform this action new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Assert(); // BlessedAssert try { source.Switch.Level = SourceLevels.Warning; } finally { SecurityPermission.RevertAssert(); } } // returning source after reverting the assert to avoid // using exposed elements under the assert return source; } } internal delegate void TraceRefreshEventHandler(); } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /****************************************************************************\ * * File: PresentationTraceSources.cs * * This class provides a public interface to access TraceSources for * enabling/disabling/filtering of trace messages by area. * * The other portion of this partial class is generated using * genTraceSource.pl and AvTraceMessages.txt * * Copyright (C) by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System.Collections.Generic; using System.Security; using System.Security.Permissions; using MS.Internal; using System.Windows; namespace System.Diagnostics { ////// PresentationTraceLevel - Enum which describes how much detail to trace about a particular object. /// public enum PresentationTraceLevel { ////// Trace no additional information. /// None, ////// Trace some additional information. /// Low, ////// Trace a medium amount of additional information. /// Medium, ////// Trace all available additional information. /// High, } ////// Helper class for retrieving TraceSources /// public static partial class PresentationTraceSources { //----------------------------------------------------- // // Public Properties // //----------------------------------------------------- ////// DependencyProperty for TraceLevel property. /// public static readonly DependencyProperty TraceLevelProperty = DependencyProperty.RegisterAttached( "TraceLevel", typeof(PresentationTraceLevel), typeof(PresentationTraceSources)); ////// Reads the attached property TraceLevel from the given element. /// public static PresentationTraceLevel GetTraceLevel(object element) { return TraceLevelStore.GetTraceLevel(element); } ////// Writes the attached property TraceLevel to the given element. /// public static void SetTraceLevel(object element, PresentationTraceLevel traceLevel) { TraceLevelStore.SetTraceLevel(element, traceLevel); } //----------------------------------------------------- // // Public Methods // //------------------------------------------------------ ////// Refresh TraceSources (re-read config file), creating if necessary. /// // Note: Better would be to separate enable from the Refresh method. public static void Refresh() { // Let AvTrace know that an explicit Refresh has been called. AvTrace.OnRefresh(); // Re-read the .config files System.Diagnostics.Trace.Refresh(); // Initialize any traces classes if needed if (TraceRefresh != null) { TraceRefresh(); } } internal static event TraceRefreshEventHandler TraceRefresh; ////// Critical: /// 1) Asserts for UMC to set trace level. /// /// TreatAsSafe: /// 1) The code path is only invoked when under a debugger /// if the caller can attach a debugger they already have /// unlimited access to the process. Also the only inputs /// to the assert are simply a label for the name. /// [SecurityCritical, SecurityTreatAsSafe] private static TraceSource CreateTraceSource(string sourceName) { // Create the trace source. Whether or not it will actually // trace anything is a decision of the trace source, e.g. it // depends on the app.config file settings. TraceSource source = new TraceSource(sourceName); // If we're attached to the debugger, ensure that at least // warnings/errors are getting traced. if (source.Switch.Level == SourceLevels.Off && AvTrace.IsDebuggerAttached()) { // we need to assert as PT callers under a debugger can invoke this code path // with out having the needed permission to peform this action new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Assert(); // BlessedAssert try { source.Switch.Level = SourceLevels.Warning; } finally { SecurityPermission.RevertAssert(); } } // returning source after reverting the assert to avoid // using exposed elements under the assert return source; } } internal delegate void TraceRefreshEventHandler(); } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SubstitutionList.cs
- TableCell.cs
- PeerPresenceInfo.cs
- StringValidatorAttribute.cs
- VerticalAlignConverter.cs
- ListView.cs
- ObjectListTitleAttribute.cs
- Journaling.cs
- WmlImageAdapter.cs
- GeometryHitTestResult.cs
- InvalidWMPVersionException.cs
- DataServiceProviderMethods.cs
- CollectionEditorDialog.cs
- CodeMemberMethod.cs
- MimeTypeMapper.cs
- ProjectionPruner.cs
- TrackingProfileDeserializationException.cs
- ChannelTokenTypeConverter.cs
- HuffCodec.cs
- ReferentialConstraint.cs
- OutputCacheSettings.cs
- GlyphingCache.cs
- TextTreeInsertUndoUnit.cs
- DelayedRegex.cs
- NetworkAddressChange.cs
- OracleConnectionFactory.cs
- Expression.cs
- DeviceContext2.cs
- BookmarkScope.cs
- EncryptedReference.cs
- SamlAuthenticationStatement.cs
- PlatformCulture.cs
- SecurityToken.cs
- WeakReferenceKey.cs
- PersistenceParticipant.cs
- RuntimeComponentFilter.cs
- XmlSchemaProviderAttribute.cs
- WindowsFormsLinkLabel.cs
- CreateSequenceResponse.cs
- EventLogPermission.cs
- Point3DValueSerializer.cs
- DbConnectionStringBuilder.cs
- TextRange.cs
- TypeForwardedToAttribute.cs
- BindableTemplateBuilder.cs
- DeferredTextReference.cs
- ProcessMessagesAsyncResult.cs
- UrlMappingCollection.cs
- TypeExtensionConverter.cs
- DrawTreeNodeEventArgs.cs
- QuaternionKeyFrameCollection.cs
- ScrollItemPattern.cs
- EventlogProvider.cs
- HtmlWindow.cs
- CompositeClientFormatter.cs
- util.cs
- JumpList.cs
- ClientSettings.cs
- DesignTableCollection.cs
- JournalEntryListConverter.cs
- SiteMapNodeItemEventArgs.cs
- TableHeaderCell.cs
- TreeView.cs
- _BaseOverlappedAsyncResult.cs
- Rotation3DKeyFrameCollection.cs
- ControllableStoryboardAction.cs
- dsa.cs
- CodeArrayCreateExpression.cs
- HttpDebugHandler.cs
- DataSourceListEditor.cs
- LabelDesigner.cs
- FixedSOMLineRanges.cs
- FixedElement.cs
- PageRanges.cs
- GZipStream.cs
- WebSysDisplayNameAttribute.cs
- Scene3D.cs
- EntityPropertyMappingAttribute.cs
- MenuEventArgs.cs
- SelectionHighlightInfo.cs
- basecomparevalidator.cs
- EnumMember.cs
- SystemTcpStatistics.cs
- NullableIntMinMaxAggregationOperator.cs
- XmlObjectSerializerContext.cs
- StandardCommands.cs
- panel.cs
- LassoSelectionBehavior.cs
- HttpCapabilitiesBase.cs
- ImageFormatConverter.cs
- ServiceInstallComponent.cs
- VerbConverter.cs
- CompilationSection.cs
- ScriptingRoleServiceSection.cs
- HashCodeCombiner.cs
- WebPartUserCapability.cs
- SystemGatewayIPAddressInformation.cs
- FragmentQueryKB.cs
- CodeSubDirectory.cs
- _StreamFramer.cs