Udostępnij za pośrednictwem


TraceListener.GetSupportedAttributes Metoda

Definicja

Pobiera atrybuty niestandardowe obsługiwane przez odbiornik śledzenia.

protected:
 virtual cli::array <System::String ^> ^ GetSupportedAttributes();
protected public:
 virtual cli::array <System::String ^> ^ GetSupportedAttributes();
protected virtual string[]? GetSupportedAttributes ();
protected virtual string[] GetSupportedAttributes ();
protected internal virtual string[] GetSupportedAttributes ();
abstract member GetSupportedAttributes : unit -> string[]
override this.GetSupportedAttributes : unit -> string[]
Protected Overridable Function GetSupportedAttributes () As String()
Protected Friend Overridable Function GetSupportedAttributes () As String()

Zwraca

String[]

Tablica ciągów nazewnictwa atrybutów niestandardowych obsługiwanych przez odbiornik śledzenia lub null jeśli nie ma atrybutów niestandardowych.

Przykłady

Poniższy przykładowy kod przedstawia zastąpienie GetSupportedAttributes metody dla niestandardowego odbiornika śledzenia.

// This code example uses the following application configuration file:

//<?xml version="1.0" encoding="utf-8"?>
//      <source name="TraceTest" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
//          <add name="Testlistener" />
//      <add name="SourceSwitch" value="Warning" />
//      <add name="Testlistener" type="CustomTraceListener.TestListener, CustomTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" initializeData="TestListener" Source="test"/>
//    <trace autoflush="true" indentsize="4" />

using System;
using System.Diagnostics;
using System.Configuration;
using System.Reflection;
using System.Collections;
namespace CustomTraceListener
{
    class Program
    {
        static void Main(string[] args)
        {
            TraceSource ts = new TraceSource("TraceTest");
            Console.WriteLine(ts.Switch.DisplayName);
            foreach (TraceListener traceListener in ts.Listeners)
            {
                Console.Write("TraceListener: " + traceListener.Name + "\t");
                // The following output can be used to update the configuration file.
                Console.WriteLine("AssemblyQualifiedName = " +
                    (traceListener.GetType().AssemblyQualifiedName));
            }
            ts.TraceEvent(TraceEventType.Error, 1, "test error message");
        }
    }
    public class TestListener : TraceListener
    {
        string source;
        string name;
        public TestListener(string listenerName)
        {
            name = listenerName;
        }

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

        public override void Write(string s)
        {
            Console.Write(name + " " + Source + ": " + s);
        }
        public override void WriteLine(string s)
        {
            Console.WriteLine(s);
        }
        protected override string[] GetSupportedAttributes()
        {
            return new string[] { "Source" };
        }
    }
}
// This code example creates the following output:
/*
SourceSwitch
TraceListener: Default  AssemblyQualifiedName = System.Diagnostics.DefaultTraceL
istener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0
89
TraceListener: Testlistener     AssemblyQualifiedName = CustomTraceListener.Test
Listener, CustomTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=
null
TestListener test: TraceTest Error: 1 : test error message
*/
' This code example uses the following application configuration file:
'<?xml version="1.0" encoding="utf-8"?>
'      <source name="TraceTest" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
'          <add name="Testlistener" />
'      <add name="SourceSwitch" value="Warning" />
'      <add name="Testlistener" type="CustomTraceListener.TestListener, CustomTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" initializeData="TestListener" Source="test"/>
'    <trace autoflush="true" indentsize="4" />
Imports System.Diagnostics
Imports System.Configuration
Imports System.Reflection
Imports System.Collections

Namespace CustomTraceListener

    Class Program

        Shared Sub Main(ByVal args() As String)
            Dim ts As New TraceSource("TraceTest")
            Console.WriteLine(ts.Switch.DisplayName)
            Dim traceListener As TraceListener
            For Each traceListener In ts.Listeners
                Console.Write("TraceListener: " + traceListener.Name + vbTab)
                ' The following output can be used to update the configuration file.
                Console.WriteLine("AssemblyQualifiedName = " + traceListener.GetType().AssemblyQualifiedName)
            Next traceListener
            ts.TraceEvent(TraceEventType.Error, 1, "test error message")

        End Sub
    End Class

    Public Class TestListener
        Inherits TraceListener
        Private [m_source] As String
        Private m_name As String

        Public Sub New(ByVal listenerName As String)
            m_name = listenerName
        End Sub


        Public Property [Source]() As String
            Get
                Dim de As DictionaryEntry
                For Each de In Me.Attributes
                    If de.Key.ToString().ToLower() = "source" Then
                        [Source] = de.Value.ToString()
                    End If
                Next de
                Return [m_source]
            End Get
            Set(ByVal value As String)
                [m_source] = value
            End Set
        End Property

        Public Overrides Sub Write(ByVal s As String)
            Console.Write(m_name + " " + [Source] + ": " + s)

        End Sub

        Public Overrides Sub WriteLine(ByVal s As String)
            Console.WriteLine(s)

        End Sub

        Protected Overrides Function GetSupportedAttributes() As String()
            Return New String() {"Source"}

        End Function 'GetSupportedAttributes
    End Class
End Namespace 'CustomTraceListener
' This code example creates the following output:
'
'SourceSwitch
'TraceListener: Default  AssemblyQualifiedName = System.Diagnostics.DefaultTraceL
'istener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0
'89
'TraceListener: Testlistener     AssemblyQualifiedName = CustomTraceListener.Test
'Listener, CustomTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=
'null
'TestListener test: TraceTest Error: 1 : test error message
'

Uwagi

Domyślna implementacja dla GetSupportedAttributes zwraca wartość null.

Uwagi dotyczące dziedziczenia

Podczas dziedziczenia z TraceListener klasy lub klasy pochodnej można zastąpić GetSupportedAttributes() metodę , aby podać atrybuty niestandardowe dla klasy.

Dotyczy