|
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Diagnostics
{
using System.Diagnostics;
class DiagnosticTraceSource : PiiTraceSource
{
const string PropagateActivityValue = "propagateActivity";
internal DiagnosticTraceSource(string name, string eventSourceName)
: base(name, eventSourceName)
{
}
internal DiagnosticTraceSource(string name, string eventSourceName, SourceLevels level)
: base(name, eventSourceName, level)
{
}
protected override string[] GetSupportedAttributes()
{
string[] baseAttributes = base.GetSupportedAttributes();
string[] supportedAttributes = new string[baseAttributes.Length + 1];
for (int i = 0; i < baseAttributes.Length; i++)
{
supportedAttributes[i] = baseAttributes[i];
}
supportedAttributes[baseAttributes.Length] = DiagnosticTraceSource.PropagateActivityValue;
return supportedAttributes;
}
internal bool PropagateActivity
{
get
{
bool retval = false;
string attributeValue = this.Attributes[DiagnosticTraceSource.PropagateActivityValue];
if (!string.IsNullOrEmpty(attributeValue))
{
if (!bool.TryParse(attributeValue, out retval))
{
retval = false;
}
}
return retval;
}
set
{
this.Attributes[DiagnosticTraceSource.PropagateActivityValue] = value.ToString();
}
}
}
}
|