2009-07-08 6 views
2
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] 

J'ai vu cet attribut dans le réflecteur pour les bibliothèques de classes de base dans .NET. Peut-être que les garanties immuables sont supportées en interne?Que fait cet attribut .NET?

Répondre

5

Lisez à ce sujet here et here.

Le résumé est d'indiquer à l'exécution de garantir l'exécution des blocs finally face à toute exception asynchrone (comme ThreadAbortException).

L'hôte CLR standard tiendra le thread en attente pendant que les blocs sont en cours d'exécution. Toutefois, lorsque SQL Server héberge le CLR, des abandons brutaux peuvent survenir pendant que CLR exécute les clauses finally. Dans ce genre de cas, les URCE sont utilisées pour s'assurer que l'état ne soit pas corrompu.

Il existe certaines exigences que vous devez respecter dans les CER (par exemple, vous n'êtes pas autorisé à placer des éléments dans un CER).

+0

Merci, pouvez-vous me dire ce qu'est CER? –

+2

CER = régions d'exécution contraintes, assurez-vous de lire le document sur MSDN, ils couvrent cela de manière beaucoup plus détaillée. –