Cer Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u het gedrag van een methode op wanneer deze wordt aangeroepen binnen een beperkte uitvoeringsregio.
public enum class Cer
[System.Serializable]
public enum Cer
public enum Cer
[<System.Serializable>]
type Cer =
type Cer =
Public Enum Cer
- Overname
- Kenmerken
Velden
| Name | Waarde | Description |
|---|---|---|
| None | 0 | De methode, het type of de assembly heeft geen concept van een CER. Het profiteert niet van CER-garanties. |
| MayFail | 1 | In het geval van uitzonderlijke omstandigheden kan de methode mislukken. In dit geval rapporteert de methode aan de aanroepmethode of deze is geslaagd of mislukt. De methode moet een CER hebben rond de hoofdtekst van de methode om ervoor te zorgen dat deze de retourwaarde kan rapporteren. |
| Success | 2 | In het geval van uitzonderlijke omstandigheden wordt gegarandeerd dat de methode slaagt. U moet altijd een CER maken rond de methode die wordt aangeroepen, zelfs wanneer deze wordt aangeroepen vanuit een niet-CER-regio. Een methode is geslaagd als deze bereikt wat is bedoeld. Een markering Count met |
Voorbeelden
In het volgende codevoorbeeld wordt het gebruik van de Cer opsomming gedemonstreerd bij het opgeven van een beperkte uitvoeringsregio voor een methode. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de ReliabilityContractAttribute constructor.
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[MethodImpl(MethodImplOptions.NoInlining)]
void StackDepth2()
{
try
{
consistentLevel2 = false;
if (depth == 2)
Thread.Sleep(-1);
StackDepth3();
}
finally
{
consistentLevel2 = true;
}
}
<ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)>
<MethodImpl(MethodImplOptions.NoInlining)>
Sub StackDepth2()
Try
consistentLevel2 = False
If depth = 2 Then Thread.Sleep(-1)
StackDepth3()
Finally
consistentLevel2 = True
End Try
End Sub
Opmerkingen
De Cer opsomming geeft het gedrag aan van een methode, type of assembly binnen een beperkte uitvoeringsregio (CER). Gebruik een van de drie beschikbare waarden om aan te geven dat de entiteit slaagt, geen kennis heeft van een CER of mogelijk (deterministisch) kan rapporteren dat de entiteit is geslaagd of mislukt.
Een CER biedt garanties dat de coderegio ononderbroken wordt uitgevoerd, zelfs als een asynchrone uitzondering, zoals een afgebroken thread buiten-geheugenuitzondering, of stack-overloop wordt verhoogd.
De Cer.None opsommingswaarde geeft echter aan dat de methode, het type of de assembly geen concept van een CER heeft. Het profiteert niet van CER-garanties. Dit impliceert het volgende:
In het geval van uitzonderlijke omstandigheden kan de methode mislukken.
De methode rapporteert mogelijk of niet dat deze is mislukt (dit is niet-deterministisch).
De methode is niet geschreven met CER's in gedachten (dit is het meest waarschijnlijke scenario).
Als een methode, type of assembly niet expliciet is gemarkeerd om te slagen, wordt deze impliciet gemarkeerd als Cer.None.