TraceSource.GetSupportedAttributes Method

Definition

Gets the custom attributes supported by the trace source.

C#
protected virtual string[]? GetSupportedAttributes();
C#
protected virtual string[] GetSupportedAttributes();
C#
protected internal virtual string[] GetSupportedAttributes();

Returns

String[]

A string array naming the custom attributes supported by the trace source, or null if there are no custom attributes.

Examples

The following code example shows an override of the GetSupportedAttributes method to identify the custom attributes for the MyTraceSource class.

C#
public class MyTraceSource : TraceSource
{
    string firstAttribute = "";
    string secondAttribute = "";
    public MyTraceSource(string n) : base(n) {}

    public string FirstTraceSourceAttribute
    {
        get {
            foreach (DictionaryEntry de in this.Attributes)
                if (de.Key.ToString().ToLower() == "firsttracesourceattribute")
                    firstAttribute = de.Value.ToString() ;
            return firstAttribute;
        }
        set { firstAttribute = value; }
    }

    public string SecondTraceSourceAttribute
    {
        get {
            foreach (DictionaryEntry de in this.Attributes)
                if (de.Key.ToString().ToLower() == "secondtracesourceattribute")
                    secondAttribute = de.Value.ToString();
            return secondAttribute; }
        set { secondAttribute = value; }
    }

    protected override string[] GetSupportedAttributes()
    {
        // Allow the use of the attributes in the configuration file.
        return new string[] { "FirstTraceSourceAttribute", "SecondTraceSourceAttribute" };
    }
}

Remarks

The default implementation for GetSupportedAttributes returns null.

Notes to Inheritors

When inheriting from the TraceSource class or a derived class, you can override the GetSupportedAttributes() method to provide custom attributes for your class.

Applies to

Product Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1