Switch Class in VB.NET

In this article I will explain you about the Switch Class in VB.NET.
  • 2392

A trace switch is a way to control tracing and debugging output at runtime using various settings. The Switch class is the parent of the BooleanSwitch and TraceSwitch classes. Despite our being able to derive and create custom switches, the BooleanSwitch and TraceSwitch classes will be satisfactory for our debugging and tracing needs. Table 21.4 describes two members of the Switch class.

Table 21.4: Switch Class Members

table21.4.gif

The TraceSwitch class provides per assembly, per module, or per class tracing. This is more powerful and easier than the single-trace options because it lets you specify various output options at once. Therefore, the extreme debugging or tracing outputs do not overwhelm us with the various options that we have specified when we don't want them. Table 21.5 describes members of the TraceSwitch class. The TraceSwitch constructor takes two parameters: the descriptive display name ("descriptive trace switch name") and the switch name.

Table 21.5: TraceSwitch Class Members

table21.5.gif

We generally define the switches for the executable in the EXE.CONFIG configuration file (see Listing 21.10). The application configuration file name is <program>. Inside switch elements of the XML file, the "name" attribute refers to the switch name and the "value" attribute is the numerical value the corresponding trace level is set to. Note that we can also define the autoflush and the indent size parameters in the configuration file.

Example: Switches defined in the CONFIG file

<?xml version="1.0" encoding="UTF-8" ?>
<
configuration>
  <
system.diagnostics>
    <
switches>
      <
add name="Switch1" value="3" />
      <
add name="Switch2" value="2" />
    </
switches>
    <!
â€"additional diagnostics -->
    <
trace autoflush="true" indentsize="3" />
  </
system.diagnostics>
</
configuration>

Each assembly should have its own trace switch.

Possible TraceSwitch tracing levels are as follows:

  • 0-None
  • 1-Errors only; TraceError
  • 2-Warning (warnings and errors); TraceWarning
  • 3-Info (warnings, errors, and information); TraceInfo
  • 4-Verbose (all kinds of traces); TraceVerbose

Example of  Using TraceSwitch

    Dim MySwitch As TraceSwitch = New MySwitch("Switch1", "my switch1 at Info mode")
    ' do you see which one will run?
    Trace.WriteLineIf(MySwitch.TraceError, "Error tracing is on!")
    Trace.WriteLineIf(MySwitch.TraceWarning, "Warning tracing is on!")
    Trace.WriteLineIf(MySwitch.TraceInfo, "Info tracing is on!")
    Trace.WriteLineIf(MySwitch.TraceVerbose, "VerboseSwitching is on!")

Boolean switches can be used as a switch in your code to either turn on or turn off the printing of a debug statement. Possible BooleanSwitch tracing levels are as follows:

  • 0-False; Disabled
  • 1-True; Enabled

The Boolean switch in the XML-formatted application configuration file.

Example

<?xml version="1.0" encoding="UTF-8" ?>
<
configuration>
  <
system.diagnostics>
    <
switches>
      <
add name="Switch3" value="1" />
    </
switches>
    <!
â€"additional diagnostic settings -->
    <
trace autoflush="true" indentsize="5" />
  </
system.diagnostics>
</
configuration>

The BooleanSwitch example given below is set to the Verbose mode.

Example

    Dim boolSwitch As New BooleanSwitch("Switch3", "my boolean switch")
    Debug.WriteLine("DEBUG")
    Trace.WriteLine("TRACE")
    Trace.WriteLineIf(boolSwitch.Enabled, "boolSwitch")

We can also derive custom switch classes from the Switch class but generally do n  ot need to do so.

Conclusion

Hope this article would have helped you in understanding the Switch Class in VB.NET

Categories

More Articles

© 2019 DotNetHeaven. All rights reserved.