ContractOptionAttribute Class
 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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

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

SystemObject
   SystemAttribute
    System.Diagnostics.ContractsContractOptionAttribute

[AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = true, 
	Inherited = false)]
[ConditionalAttribute("CONTRACTS_FULL")]
public sealed class ContractOptionAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::All, AllowMultiple = true, 
	Inherited = false)]
[ConditionalAttribute("CONTRACTS_FULL")]
public ref class ContractOptionAttribute sealed : Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = true,
    Inherited = false)>]
[<ConditionalAttribute("CONTRACTS_FULL")>]
type ContractOptionAttribute = 
    class
        inherit Attribute
    end
<AttributeUsageAttribute(AttributeTargets.All, AllowMultiple := True,
	Inherited := False)>
<ConditionalAttribute("CONTRACTS_FULL")>
Public NotInheritable Class ContractOptionAttribute
	Inherits Attribute
NameDescription
System_CAPS_pubmethod ContractOptionAttribute

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

System_CAPS_pubmethod ContractOptionAttribute

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

NameDescription
System_CAPS_pubproperty

Gets the category of the option.

System_CAPS_pubproperty

Determines if an option is enabled.

System_CAPS_pubproperty

Gets the setting for the option.

System_CAPS_pubproperty

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

System_CAPS_pubproperty

Gets the value for the option.

NameDescription
System_CAPS_pubmethod Equals

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_pubmethod GetHashCode

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

System_CAPS_pubmethod GetType

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

System_CAPS_pubmethod IsDefaultAttribute

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_pubmethod Match

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

System_CAPS_pubmethod ToString

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

NameDescription
System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetIDsOfNames

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

System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetTypeInfo

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

System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetTypeInfoCount

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

System_CAPS_pubinterface System_CAPS_privmethod _AttributeInvoke

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