Consistency Enum

Definition

Caution

The Constrained Execution Region (CER) feature is not supported.

Specifies a reliability contract.

C#
[System.Obsolete("The Constrained Execution Region (CER) feature is not supported.", DiagnosticId="SYSLIB0004", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public enum Consistency
C#
public enum Consistency
C#
[System.Serializable]
public enum Consistency
Inheritance
Consistency
Attributes

Fields

Name Value Description
MayCorruptProcess 0

In the face of exceptional conditions, the CLR makes no guarantees regarding state consistency; that is, the condition might corrupt the process.

MayCorruptAppDomain 1

In the face of exceptional conditions, the common language runtime (CLR) makes no guarantees regarding state consistency in the current application domain.

MayCorruptInstance 2

In the face of exceptional conditions, the method is guaranteed to limit state corruption to the current instance.

WillNotCorruptState 3

In the face of exceptional conditions, the method is guaranteed not to corrupt state. (This does not guarantee that the method will never fail; however, it does guarantee that such a failure will never corrupt state.)

Examples

The following code example demonstrates the use of the Consistency enumeration when specifying a constrained execution region for a method. This code example is part of a larger example provided for the ReliabilityContractAttribute constructor.

C#
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[MethodImpl(MethodImplOptions.NoInlining)]
void StackDepth2()
{
    try
    {
        consistentLevel2 = false;
        if (depth == 2)
            Thread.Sleep(-1);
        StackDepth3();
    }
    finally
    {
        consistentLevel2 = true;
    }
}

Remarks

The Consistency enumeration is used as a parameter to the ReliabilityContractAttribute attribute to specify the reliability guarantee on a given method.

Applies to

Product Versions (Obsolete)
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1 (5, 6, 7, 8, 9, 10)
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

See also