Freigeben über


BooleanSwitch-Klasse

Stellt einen einfachen An-Aus-Schalter bereit, der die Debugausgabe und die Ausgabe der Ablaufverfolgung steuert.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

Syntax

'Declaration
Public Class BooleanSwitch
    Inherits Switch
'Usage
Dim instance As BooleanSwitch
public class BooleanSwitch : Switch
public ref class BooleanSwitch : public Switch
public class BooleanSwitch extends Switch
public class BooleanSwitch extends Switch

Hinweise

Mit einem booleschen Ablaufverfolgungsschalter können Sie Meldungen je nach ihrer Wichtigkeit aktivieren oder deaktivieren. Mit der Enabled-Eigenschaft rufen Sie den aktuellen Wert des Schalters ab.

Sie können BooleanSwitch über die Anwendungskonfigurationsdatei aktivieren oder deaktivieren und anschließend den konfigurierten BooleanSwitch-Wert in der Anwendung verwenden. Sie können auch einen BooleanSwitch im Code erstellen und die Enabled-Eigenschaft direkt zum Instrumentieren eines bestimmten Codeabschnitts festlegen.

Zum Konfigurieren von BooleanSwitch bearbeiten Sie die Konfigurationsdatei, die dem Namen der Anwendung entspricht. In dieser Datei können Sie einen Schalter hinzufügen oder entfernen, den Wert eines Schalters festlegen oder alle Schalter löschen, die zuvor durch die Anwendung festgelegt wurden. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert werden.

<configuration>
  <system.diagnostics>
    <switches>
      <add name="mySwitch" value="1"/>
    </switches>
  </system.diagnostics>
</configuration>

In diesem Beispielkonfigurationsabschnitt wird ein BooleanSwitch definiert, wobei die DisplayName-Eigenschaft auf mySwitch und der Enabled-Wert auf true festgelegt werden. In der Anwendung können Sie den konfigurierten Schalterwert verwenden, indem Sie einen BooleanSwitch mit demselben Namen erstellen, wie im folgenden Codebeispiel veranschaulicht.

Private Shared boolSwitch As New BooleanSwitch("mySwitch", _
    "Switch in config file")

Public Shared Sub Main(ByVal CmdArgs() As String)
    '...
    Console.WriteLine("Boolean switch {0} configured as {1}", _
        boolSwitch.DisplayName, boolSwitch.Enabled.ToString())
    If boolSwitch.Enabled Then
        '...
    End If

End Sub
private static BooleanSwitch boolSwitch = new BooleanSwitch("mySwitch", 
    "Switch in config file");

public static void Main(string[] args) 
{
    //...
    Console.WriteLine("Boolean switch {0} configured as {1}", 
        boolSwitch.DisplayName, boolSwitch.Enabled.ToString());
    if (boolSwitch.Enabled)
    {
        //...
    }
}

Standardmäßig wird die Enabled-Eigenschaft mit dem Wert festgelegt, der in der Konfigurationsdatei angegeben ist. Konfigurieren Sie den Schalter mit dem Wert 0, um die Enabled-Eigenschaft auf false festzulegen. Um die Enabled-Eigenschaft auf true festzulegen, konfigurieren Sie den Schalter mit einem Wert ungleich 0 (null). Wenn der BooleanSwitch-Konstruktor keine Anfangseinstellungen für den Schalter in der Konfigurationsdatei findet, wird die Enabled-Eigenschaft des neuen Schalters auf den Standardwert false festgelegt.

Sie müssen die Ablaufverfolgung oder das Debuggen aktivieren, um einen Schalter zu verwenden. Die folgende Syntax ist compilerspezifisch. Wenn Sie einen anderen Compiler als C# oder Visual Basic verwenden, finden Sie entsprechende Informationen in der Dokumentation zum Compiler.

  • Wenn Sie das Debuggen in C# aktivieren möchten, fügen Sie in der Compilerbefehlszeile beim Kompilieren des Codes das /d:DEBUG-Flag hinzu, oder fügen Sie #define DEBUG am Anfang der Datei ein. Fügen Sie in Visual Basic in der Compilerbefehlszeile das /d:DEBUG=True-Flag hinzu.

  • Wenn Sie die Verwendung der Ablaufverfolgung in C# aktivieren möchten, fügen Sie in der Compilerbefehlszeile beim Kompilieren des Codes das /d:TRACE-Flag hinzu, oder fügen Sie #define TRACE am Anfang der Datei ein. Fügen Sie in Visual Basic in der Compilerbefehlszeile das /d:TRACE=True-Flag hinzu.

Hinweis

Wenn die BooleanSwitch-Klasse isoliert verwendet wird, sind diese Compilerschalter für Debugging und Ablaufverfolgung nicht erforderlich. Sie werden nur in Verbindung mit der Trace-Methode oder der Debug-Methode benötigt, die bedingt kompiliert werden.

Weitere Informationen zum Instrumentieren der Anwendung finden Sie unter Debug und Trace. Weitere Informationen über das Konfigurieren und Verwenden von Ablaufverfolgungsschaltern finden Sie unter Ablaufverfolgungsschalter.

Hinweis

Sie können BooleanSwitch-Member in der Klasse als static festlegen, um die Leistung zu erhöhen.

Thema Position
Gewusst wie: Konfigurieren von Ablaufverfolgungsschaltern .NET Framework: Debuggen
Gewusst wie: Erstellen und Initialisieren von Ablaufverfolgungsschaltern .NET Framework: Debuggen
Gewusst wie: Konfigurieren von Ablaufverfolgungsschaltern .NET Framework: Debuggen
Gewusst wie: Erstellen und Initialisieren von Ablaufverfolgungsschaltern .NET Framework: Debuggen

Beispiel

Im folgenden Beispiel wird ein BooleanSwitch erstellt und mit diesem Schalter bestimmt, ob eine Fehlermeldung angezeigt werden soll. Der Schalter wird auf Klassenebene erstellt. Die Main-Methode übergibt ihre Position an MyMethod, die eine Fehlermeldung und die Position des Fehlers ausgibt.

' Class level declaration.
' Create a BooleanSwitch for data. 
Private Shared dataSwitch As New BooleanSwitch("Data", "DataAccess module")


Public Shared Sub MyMethod(location As String)
    ' Insert code here to handle processing.
    If dataSwitch.Enabled Then
        Console.WriteLine(("Error happened at " + location))
    End If
End Sub 'MyMethod

' Entry point which delegates to C-style main function.
Public Overloads Shared Sub Main()
    Main(System.Environment.GetCommandLineArgs())
End Sub
 
Overloads Public Shared Sub Main(args() As String)
    ' Run the method which writes an error message specifying the location of the error.
    MyMethod("in Main")
End Sub 'Main
// Class level declaration.
/* Create a BooleanSwitch for data.*/
static BooleanSwitch dataSwitch = new BooleanSwitch("Data", "DataAccess module");

static public void MyMethod(string location) {
   //Insert code here to handle processing.
   if(dataSwitch.Enabled)
      Console.WriteLine("Error happened at " + location);
}

public static void Main(string[] args) {
   //Run the method which writes an error message specifying the location of the error.
   MyMethod("in Main");
}
public ref class BooleanSwitchTest
{
private:

   /* Create a BooleanSwitch for data.*/
   static BooleanSwitch^ dataSwitch = gcnew BooleanSwitch( "Data","DataAccess module" );

public:
   static void MyMethod( String^ location )
   {
      
      //Insert code here to handle processing.
      if ( dataSwitch->Enabled )
            Console::WriteLine( "Error happened at {0}", location );
   }

};

int main()
{
   
   //Run the method which writes an error message specifying the location of the error.
   BooleanSwitchTest::MyMethod( "in main" );
}
// Class level declaration.
/* Create a BooleanSwitch for data.
 */
private static BooleanSwitch dataSwitch = 
    new BooleanSwitch("Data", "DataAccess module");

public static void MyMethod(String location)
{
    //Insert code here to handle processing.
    if (dataSwitch.get_Enabled()) {
        Console.WriteLine("Error happened at " + location);
    }
} //MyMethod

public static void main(String[] args)
{
    // Run the method which writes an error message specifying 
    // the location of the error.
    MyMethod("in main");
} //main
// Class level declaration.
 /* Create a BooleanSwitch for data.*/
 static var dataSwitch : BooleanSwitch = new BooleanSwitch("Data", "DataAccess module");
 
 static public function MyMethod(location : String) {
    // Insert code here to handle processing.
    if(dataSwitch.Enabled)
       Console.WriteLine("Error happened at " + location);
 }
 
 public static function Main() {
    // Run the method which writes an error message specifying the location of the error.
    MyMethod("in Main");
 }

Vererbungshierarchie

System.Object
   System.Diagnostics.Switch
    System.Diagnostics.BooleanSwitch

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

BooleanSwitch-Member
System.Diagnostics-Namespace
Switch
TraceSwitch
Debug
Trace