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
- DataContext.cs
- TextTreeInsertUndoUnit.cs
- CapabilitiesSection.cs
- BeginStoryboard.cs
- InheritablePropertyChangeInfo.cs
- ToolStripRendererSwitcher.cs
- DataGridItemCollection.cs
- DataControlFieldCell.cs
- SiteMapDataSourceDesigner.cs
- HtmlTextBoxAdapter.cs
- RawUIStateInputReport.cs
- WriteLineDesigner.xaml.cs
- SizeConverter.cs
- EditorPart.cs
- InvalidEnumArgumentException.cs
- RC2CryptoServiceProvider.cs
- DecimalMinMaxAggregationOperator.cs
- FormView.cs
- ServerType.cs
- _NetRes.cs
- HostProtectionException.cs
- SapiGrammar.cs
- StorageInfo.cs
- EventLogPermission.cs
- ClientConfigPaths.cs
- MessageDescriptionCollection.cs
- LongMinMaxAggregationOperator.cs
- AutoResetEvent.cs
- XmlDataSourceView.cs
- TextContainerChangeEventArgs.cs
- EventLogPropertySelector.cs
- GlobalItem.cs
- CollectionDataContractAttribute.cs
- DataGridPageChangedEventArgs.cs
- HijriCalendar.cs
- TemplateKey.cs
- MarginCollapsingState.cs
- EmptyQuery.cs
- LeafCellTreeNode.cs
- ProxyGenerator.cs
- ProxyHelper.cs
- Package.cs
- ConfigXmlAttribute.cs
- SHA1CryptoServiceProvider.cs
- CodeAttributeArgument.cs
- QuadTree.cs
- BaseTemplateBuildProvider.cs
- ScriptRef.cs
- BaseAsyncResult.cs
- ValueExpressions.cs
- Transactions.cs
- InternalConfigHost.cs
- HtmlValidationSummaryAdapter.cs
- VariantWrapper.cs
- Variant.cs
- ScriptingRoleServiceSection.cs
- StringAttributeCollection.cs
- StandardRuntimeEnumValidator.cs
- VolatileEnlistmentState.cs
- Point3DAnimation.cs
- Tracer.cs
- GroupPartitionExpr.cs
- SpecularMaterial.cs
- HtmlMeta.cs
- IdentityVerifier.cs
- PngBitmapDecoder.cs
- TimeManager.cs
- CleanUpVirtualizedItemEventArgs.cs
- ToolStripSeparatorRenderEventArgs.cs
- IIS7WorkerRequest.cs
- CodeSubDirectory.cs
- Common.cs
- DataKey.cs
- XmlUnspecifiedAttribute.cs
- ScriptingJsonSerializationSection.cs
- DataMemberFieldConverter.cs
- DeriveBytes.cs
- DataServiceResponse.cs
- DataTableTypeConverter.cs
- InstanceStore.cs
- IssuanceLicense.cs
- CommonObjectSecurity.cs
- WizardPanel.cs
- SectionUpdates.cs
- CancelRequestedRecord.cs
- Inline.cs
- FocusWithinProperty.cs
- MappingSource.cs
- TemplateBindingExpression.cs
- ToolStripCollectionEditor.cs
- ToolStripButton.cs
- SiteOfOriginPart.cs
- CompilationLock.cs
- WorkerRequest.cs
- ErrorLog.cs
- SynchronizationFilter.cs
- XPathNodeHelper.cs
- ObfuscateAssemblyAttribute.cs
- AttachedPropertyDescriptor.cs
- MarkupProperty.cs