Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Diagnostics / PresentationTraceSources.cs / 2 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MD5CryptoServiceProvider.cs
- securestring.cs
- XPathScanner.cs
- BaseServiceProvider.cs
- ValidationRuleCollection.cs
- SslStream.cs
- FlowDecisionDesigner.xaml.cs
- SoapEnvelopeProcessingElement.cs
- RequestBringIntoViewEventArgs.cs
- VariableQuery.cs
- TextEditorContextMenu.cs
- KeySplineConverter.cs
- DateTimeOffsetConverter.cs
- ISAPIWorkerRequest.cs
- DNS.cs
- XmlSchemaAttributeGroupRef.cs
- SystemBrushes.cs
- PrintingPermission.cs
- BidOverLoads.cs
- DetailsViewModeEventArgs.cs
- ChangeNode.cs
- InputLanguageEventArgs.cs
- ParameterBinding.cs
- ClearTypeHintValidation.cs
- embossbitmapeffect.cs
- CompModSwitches.cs
- XPathConvert.cs
- JavaScriptString.cs
- QilCloneVisitor.cs
- WindowExtensionMethods.cs
- ComplexPropertyEntry.cs
- RuntimeConfigLKG.cs
- DurableEnlistmentState.cs
- WebException.cs
- DbProviderSpecificTypePropertyAttribute.cs
- WindowsAltTab.cs
- ButtonField.cs
- BindableAttribute.cs
- PackagePart.cs
- CodeDOMProvider.cs
- UIElementIsland.cs
- CancellationState.cs
- AtomPub10CategoriesDocumentFormatter.cs
- WorkflowInstanceAbortedRecord.cs
- MethodBody.cs
- CryptographicAttribute.cs
- ColorTranslator.cs
- COM2ComponentEditor.cs
- KnownTypesProvider.cs
- ToolStripItemTextRenderEventArgs.cs
- PrivateFontCollection.cs
- PrintPreviewGraphics.cs
- MoveSizeWinEventHandler.cs
- TransformDescriptor.cs
- DoubleAnimationUsingKeyFrames.cs
- HttpListenerException.cs
- Underline.cs
- Exceptions.cs
- QilXmlReader.cs
- DataExchangeServiceBinder.cs
- GridViewUpdateEventArgs.cs
- XmlDigitalSignatureProcessor.cs
- DiscardableAttribute.cs
- DataRowChangeEvent.cs
- BaseValidator.cs
- HttpCacheVaryByContentEncodings.cs
- PerformanceCounterManager.cs
- PngBitmapDecoder.cs
- SEHException.cs
- State.cs
- PrincipalPermission.cs
- xamlnodes.cs
- SchemaImporterExtensionElement.cs
- wgx_commands.cs
- ExpressionVisitor.cs
- HostedHttpContext.cs
- PagesChangedEventArgs.cs
- DoubleLinkListEnumerator.cs
- FormViewDeleteEventArgs.cs
- TimeEnumHelper.cs
- StatusBar.cs
- InputLanguageManager.cs
- UnwrappedTypesXmlSerializerManager.cs
- ObjectAnimationBase.cs
- COM2ExtendedBrowsingHandler.cs
- DocumentStatusResources.cs
- Exceptions.cs
- DbDataSourceEnumerator.cs
- HandlerBase.cs
- SerializerDescriptor.cs
- DataGridLengthConverter.cs
- XNodeNavigator.cs
- AutoCompleteStringCollection.cs
- CultureInfo.cs
- ColumnWidthChangingEvent.cs
- DispatcherFrame.cs
- Graphics.cs
- LinkedResource.cs
- propertyentry.cs
- FileClassifier.cs