BooleanSwitch.Enabled Property

 

Gets or sets a value indicating whether the switch is enabled or disabled.

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

public bool Enabled {
	get;
	[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
	set;
}

Property Value

Type: System.Boolean

true if the switch is enabled; otherwise, false. The default is false.

Exception Condition
SecurityException

The caller does not have the correct permission.

By default, this field is set to false (disabled). To enable the switch, assign this field the value of true. To disable the switch, assign the value to false. The value of this property is determined by the value of the base class property SwitchSetting.

System_CAPS_noteNote

This method uses the SecurityAction.LinkDemand flag to prevent being called from untrusted code; only the immediate caller is required to have SecurityPermissionAttribute.UnmanagedCode permission. If your code can be called from partially trusted code, do not pass the user input to Marshal class methods without validation.

The following code example creates a BooleanSwitch and uses the switch to determine whether to print an error message. The switch is created at the class level. The Main method passes its location to MyMethod, which prints an error message and the location where the error occurred.

//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 that writes an error message specifying the location of the error.
    MyMethod("in Main");
 }

SecurityPermission

for operating with unmanaged code. Demand value LinkDemand; Associated enumeration: SecurityPermissionFlag.UnmanagedCode.

.NET Framework
Available since 1.1
Return to top
Show: