Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / Diagnostics / DelimitedListTraceListener.cs / 1 / DelimitedListTraceListener.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Text; using System.Globalization; using System.IO; using System.Collections; using System.Security.Permissions; using System.Runtime.Versioning; namespace System.Diagnostics { [HostProtection(Synchronization=true)] public class DelimitedListTraceListener : TextWriterTraceListener { string delimiter = ";"; string secondaryDelim = ","; bool initializedDelim = false; public DelimitedListTraceListener(Stream stream) : base(stream) { } public DelimitedListTraceListener(Stream stream, string name) : base(stream, name) { } public DelimitedListTraceListener(TextWriter writer) : base(writer) { } public DelimitedListTraceListener(TextWriter writer, string name) : base(writer, name) { } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public DelimitedListTraceListener(string fileName) : base (fileName) { } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public DelimitedListTraceListener(string fileName, string name) : base(fileName, name) { } public string Delimiter { get { lock(this) { // Probably overkill if (!initializedDelim) { if (Attributes.ContainsKey("delimiter")) delimiter = Attributes["delimiter"]; initializedDelim = true; } } return delimiter; } set { if (value == null) throw new ArgumentNullException("Delimiter"); if (value.Length == 0) throw new ArgumentException(SR.GetString("Generic_ArgCantBeEmptyString", "Delimiter")); lock(this) { delimiter = value; initializedDelim = true; } if (delimiter == ",") secondaryDelim = ";"; else secondaryDelim = ","; } } protected override internal string[] GetSupportedAttributes() { return new String[]{"delimiter"}; } public override void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string format, params object[] args) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, format, args)) return; WriteHeader(source, eventType, id); if (args != null) WriteEscaped(String.Format(CultureInfo.InvariantCulture, format, args)); else WriteEscaped(format); Write(Delimiter); // Use get_Delimiter // one more delimiter for the data object Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string message) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, message)) return; WriteHeader(source, eventType, id); WriteEscaped(message); Write(Delimiter); // Use get_Delimiter // one more delimiter for the data object Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, object data) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, null, null, data)) return; WriteHeader(source, eventType, id); // first a delimiter for the message Write(Delimiter); // Use get_Delimiter WriteEscaped(data.ToString()); Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, params object[] data) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, null, null, null, data)) return; WriteHeader(source, eventType, id); // first a delimiter for the message Write(Delimiter); // Use get_Delimiter if (data != null) { for (int i=0; i
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SessionStateModule.cs
- InstanceDescriptor.cs
- ApplicationDirectoryMembershipCondition.cs
- ComponentResourceManager.cs
- VisualProxy.cs
- PreviewPageInfo.cs
- TransformerInfoCollection.cs
- TdsParserStateObject.cs
- Point3DAnimation.cs
- HtmlHistory.cs
- InheritanceUI.cs
- DateTimeFormat.cs
- ObjectTag.cs
- CookieParameter.cs
- TemplateColumn.cs
- XPathDocument.cs
- WhitespaceRuleReader.cs
- ColumnHeader.cs
- DecodeHelper.cs
- WebRequestModuleElement.cs
- OrderedDictionary.cs
- TemplateControlParser.cs
- TypographyProperties.cs
- ChtmlCalendarAdapter.cs
- PreloadedPackages.cs
- ScriptingScriptResourceHandlerSection.cs
- ClientApiGenerator.cs
- _SingleItemRequestCache.cs
- ObjectListComponentEditor.cs
- JoinTreeSlot.cs
- AddDataControlFieldDialog.cs
- BindingList.cs
- RequiredFieldValidator.cs
- ConfigDefinitionUpdates.cs
- ErrorHandler.cs
- ClientOptions.cs
- SettingsBindableAttribute.cs
- RoutedEvent.cs
- SmtpFailedRecipientsException.cs
- DataContractSerializerOperationBehavior.cs
- Renderer.cs
- OrderByExpression.cs
- CollectionView.cs
- TemplatePagerField.cs
- WindowsStatusBar.cs
- DefaultValueConverter.cs
- WorkflowRuntime.cs
- UnicodeEncoding.cs
- MonthCalendar.cs
- WebPartManagerInternals.cs
- ipaddressinformationcollection.cs
- CompositeCollectionView.cs
- XmlSecureResolver.cs
- TransformPatternIdentifiers.cs
- Span.cs
- TreeNode.cs
- SqlFlattener.cs
- OleDbFactory.cs
- QueryCacheKey.cs
- RepeaterItemCollection.cs
- WebServiceBindingAttribute.cs
- SuppressIldasmAttribute.cs
- DurableEnlistmentState.cs
- SemanticResolver.cs
- SafeSystemMetrics.cs
- SystemIPGlobalProperties.cs
- BinaryConverter.cs
- SelectionEditor.cs
- Mapping.cs
- MatrixCamera.cs
- TransformPatternIdentifiers.cs
- XPathDescendantIterator.cs
- OperatingSystem.cs
- Region.cs
- CrossSiteScriptingValidation.cs
- ActiveXSite.cs
- LinearKeyFrames.cs
- PluralizationService.cs
- DPCustomTypeDescriptor.cs
- LinearGradientBrush.cs
- sqlmetadatafactory.cs
- ObjectDataSourceEventArgs.cs
- HttpCookieCollection.cs
- PagedControl.cs
- Properties.cs
- Attribute.cs
- SymLanguageType.cs
- SequentialOutput.cs
- DialogResultConverter.cs
- PnrpPermission.cs
- Pen.cs
- FontUnit.cs
- XmlDigitalSignatureProcessor.cs
- XmlNodeReader.cs
- BindingsCollection.cs
- DBBindings.cs
- WebPartManagerInternals.cs
- MetadataException.cs
- FileChangesMonitor.cs
- IndexedString.cs