TraceListener.GetSupportedAttributes Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá vlastní atributy podporované trasování naslouchací proces.
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()
Návraty
Pole řetězců s názvy vlastních atributů podporovaných naslouchacím procesem trasování nebo null
pokud neexistují žádné vlastní atributy.
Příklady
Následující ukázka kódu ukazuje přepsání metody pro vlastní naslouchací GetSupportedAttributes proces trasování.
// 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
'
Poznámky
Výchozí implementace pro GetSupportedAttributes vrátí null
.
Poznámky pro dědice
Při dědění z TraceListener třídy nebo odvozené třídy můžete přepsat metodu GetSupportedAttributes() a poskytnout tak vlastní atributy pro vaši třídu.