ContractOptionAttribute Class

.NET Framework (current version)
 

Enables you to set contract and tool options at assembly, type, or method granularity.

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

System.Object
  System.Attribute
    System.Diagnostics.Contracts.ContractOptionAttribute

[AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = true, 
	Inherited = false)]
[ConditionalAttribute("CONTRACTS_FULL")]
public sealed class ContractOptionAttribute : Attribute

NameDescription
System_CAPS_pubmethodContractOptionAttribute(String, String, Boolean)

Initializes a new instance of the ContractOptionAttribute class by using the provided category, setting, and enable/disable value.

System_CAPS_pubmethodContractOptionAttribute(String, String, String)

Initializes a new instance of the ContractOptionAttribute class by using the provided category, setting, and value.

NameDescription
System_CAPS_pubpropertyCategory

Gets the category of the option.

System_CAPS_pubpropertyEnabled

Determines if an option is enabled.

System_CAPS_pubpropertySetting

Gets the setting for the option.

System_CAPS_pubpropertyTypeId

When implemented in a derived class, gets a unique identifier for this Attribute.(Inherited from Attribute.)

System_CAPS_pubpropertyValue

Gets the value for the option.

NameDescription
System_CAPS_pubmethodEquals(Object)

This API supports the product infrastructure and is not intended to be used directly from your code. Returns a value that indicates whether this instance is equal to a specified object.(Inherited from Attribute.)

System_CAPS_pubmethodGetHashCode()

Returns the hash code for this instance.(Inherited from Attribute.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodIsDefaultAttribute()

When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.(Inherited from Attribute.)

System_CAPS_pubmethodMatch(Object)

When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Provides access to properties and methods exposed by an object.(Inherited from Attribute.)

The following table shows the currently supported options.

Category

Setting

Value/effect

contract

inheritance

true to turn contract inheritance on; false to turn it off. The default is true.

runtime

checking

true to turn run-time checking on; false to turn it off. The default is true.

You can use this attribute as illustrated in the following examples.

To turn off run-time checking for the entire assembly:

[assembly:ContractOption("runtime", "checking", false)]

To turn run-time contract checking on for a specific type:

[ContractOption("runtime", "checking", true)]
class TypeWithRuntimeChecking {

    ...

To turn run-time checking off for a specific method:

// Turn off all contract inheritance from interface IList<T>
[ContractOption("contract", "inheritance", false)]
class MyConcurrentList<T> : IList<T> {
   ...
}

[ContractOption("runtime", "checking", false)]
public override MyMethod(int x) {
   // no inherited contracts checked at runtime,
   // no invariants checked at runtime.
   ...
}

       [ContractOption("runtime", "checking", false)]
       public void MethodWithoutRuntimeChecking(...) {
          ...
       }
   }

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.5
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: