
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Creating Your Own Custom Switch Class
|
441
However, you need a finer-grained set of levels, such as those shown in Table 8-2.
Solution
You can create your own switch class that inherits from System.Diagnostics.Switch
and provides the level of control that you need. For example, creating a class that
allows you to set more precise trace levels than those supported by the TraceSwitch
class involves the following steps:
1. Define a set of enumerated values that represent the levels to be supported by
your switch class. The following definition implements the levels listed in
Table 8-2:
public enum AppSpecificSwitchLevel
{
Disable = 0,
Note = 1,
Warning = 2,
MinorError = 3,
MediumError = 4,
CriticalError = 5
}
2. Define a class, such as AppSpecificSwitch (shown in Example 8-1), that inherits
from
System.Diagnostics.Switch and sets your own levels.
Table 8-2. A set of custom trace levels
Disable MinorError
Note MediumError
Warning CriticalError
Example 8-1. AppSpecificSwitch, a custom switch class
public class AppSpecificSwitch : Switch
{
protected AppSpecificSwitchLevel level = 0;
public AppSpecificSwitch(string displayName, string description)
: base(displayName, description)
{
Level = (AppSpecificSwitchLevel)base.SwitchSetting;
}
// Read/write Level property
public AppSpecificSwitchLevel Level ...