Cer Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie le comportement d’une méthode lorsqu’elle est appelée dans une région d’exécution contrainte.
public enum class Cer
[System.Serializable]
public enum Cer
public enum Cer
[<System.Serializable>]
type Cer =
type Cer =
Public Enum Cer
- Héritage
- Attributs
Champs
| Nom | Valeur | Description |
|---|---|---|
| None | 0 | La méthode, le type ou l’assembly n’a pas de concept de CER. Elle ne profite pas des garanties CER. |
| MayFail | 1 | Face à des conditions exceptionnelles, la méthode peut échouer. Dans ce cas, la méthode renvoie à la méthode appelante si elle a réussi ou échoué. La méthode doit avoir un CER autour du corps de la méthode pour s’assurer qu’elle peut signaler la valeur de retour. |
| Success | 2 | Face à des conditions exceptionnelles, la méthode est garantie de réussir. Vous devez toujours construire une cer autour de la méthode appelée, même lorsqu’elle est appelée à partir d’une région non CER. Une méthode réussit si elle accomplit ce qui est prévu. Par exemple, le marquage Count avec |
Exemples
L’exemple de code suivant illustre l’utilisation de l’énumération Cer lors de la spécification d’une région d’exécution contrainte pour une méthode. Cet exemple de code fait partie d’un exemple plus large fourni pour le ReliabilityContractAttribute constructeur.
[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
Remarques
L’énumération Cer spécifie le comportement d’une méthode, d’un type ou d’un assembly dans une région d’exécution contrainte (CER). Utilisez l’une des trois valeurs disponibles pour indiquer que l’entité réussit, n’a aucune connaissance d’une cer ou peut (de façon déterministe) être en mesure de signaler la réussite ou l’échec.
Un cer garantit que la région du code s’exécute sans interruption même si une exception asynchrone telle qu’une exception de thread obsolète ou un dépassement de capacité de pile est déclenché.
Toutefois, la Cer.None valeur d’énumération indique que la méthode, le type ou l’assembly n’a pas de concept de cer. Elle ne profite pas des garanties CER. Cela implique les éléments suivants :
Face à des conditions exceptionnelles, la méthode peut échouer.
La méthode peut ou non signaler qu’elle a échoué (elle n’est pas déterministe).
La méthode n’est pas écrite avec des CER à l’esprit (ce qui est le scénario le plus probable).
Si une méthode, un type ou un assembly n’est pas explicitement marqué pour réussir, il est implicitement marqué comme Cer.None.