Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- DivideByZeroException.cs
- ActivityWithResultValueSerializer.cs
- XmlSchemaType.cs
- AuthenticationModuleElement.cs
- BamlBinaryWriter.cs
- sqlpipe.cs
- PerfCounters.cs
- HTMLTagNameToTypeMapper.cs
- PublisherIdentityPermission.cs
- BaseDataListActionList.cs
- wgx_commands.cs
- AssemblyBuilderData.cs
- PointAnimationClockResource.cs
- XamlSerializerUtil.cs
- TextTreeObjectNode.cs
- MessageQueueTransaction.cs
- AutoCompleteStringCollection.cs
- OledbConnectionStringbuilder.cs
- FixedDocument.cs
- TraceHandlerErrorFormatter.cs
- XmlDataImplementation.cs
- SeparatorAutomationPeer.cs
- SettingsProperty.cs
- EventListenerClientSide.cs
- PasswordDeriveBytes.cs
- ProcessModule.cs
- RowTypeElement.cs
- SqlBulkCopyColumnMapping.cs
- ShapingEngine.cs
- GridEntry.cs
- HostedElements.cs
- AppDomain.cs
- FileFormatException.cs
- SqlClientFactory.cs
- StronglyTypedResourceBuilder.cs
- FileDialogCustomPlace.cs
- SequenceNumber.cs
- FullTextBreakpoint.cs
- ComplexLine.cs
- RegisteredDisposeScript.cs
- PreProcessInputEventArgs.cs
- XmlElementCollection.cs
- EventProviderWriter.cs
- IndicCharClassifier.cs
- ProcessInputEventArgs.cs
- ActivityExecutionContextCollection.cs
- DataColumnMapping.cs
- BindingContext.cs
- QilVisitor.cs
- ContextMenu.cs
- HttpModuleAction.cs
- ClosableStream.cs
- RootBuilder.cs
- PropertyConverter.cs
- DataBindingCollection.cs
- WhitespaceRuleReader.cs
- DataBindingCollectionConverter.cs
- DocumentCollection.cs
- DbConnectionPoolGroupProviderInfo.cs
- SessionEndedEventArgs.cs
- HtmlEmptyTagControlBuilder.cs
- PriorityBindingExpression.cs
- GridViewColumn.cs
- PageRequestManager.cs
- DataGridDesigner.cs
- DashStyle.cs
- Condition.cs
- WebMessageBodyStyleHelper.cs
- IndexOutOfRangeException.cs
- SafeRightsManagementHandle.cs
- ExpandableObjectConverter.cs
- PropertyChangingEventArgs.cs
- ClientSettingsStore.cs
- OdbcDataAdapter.cs
- Pair.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- XmlException.cs
- HttpRequestCacheValidator.cs
- LocalsItemDescription.cs
- ModifierKeysConverter.cs
- PackagePart.cs
- _CommandStream.cs
- ItemType.cs
- MouseGesture.cs
- DeclarationUpdate.cs
- DataViewManager.cs
- GenericTypeParameterBuilder.cs
- TextProperties.cs
- ToolStripRendererSwitcher.cs
- ModelPerspective.cs
- GridViewColumnCollectionChangedEventArgs.cs
- NativeRecognizer.cs
- TextElement.cs
- ListViewItem.cs
- RolePrincipal.cs
- COM2FontConverter.cs
- DataGridItemEventArgs.cs
- HelpFileFileNameEditor.cs
- RuleAttributes.cs
- FormViewModeEventArgs.cs