Что делает этот атрибут .NET? - PullRequest
2 голосов
/ 09 июля 2009
 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]

Я видел этот атрибут в отражателе для библиотек базовых классов в .NET. Может быть, неизменные гарантии поддерживаются внутри?

Ответы [ 2 ]

5 голосов
/ 09 июля 2009

Читайте об этом здесь и здесь .

Краткая сводка заключается в том, что он дает указание среде выполнения гарантировать выполнение блоков finally при любых асинхронных исключениях (например, ThreadAbortException).

Стандартный хост CLR будет удерживать прерывание потока, пока, наконец, выполняются блоки.

Однако, когда SQL Server размещает CLR, это может вызвать грубые прерывания, которые могут произойти, пока CLR выполняет предложения finally. В подобных случаях CER используются для гарантии того, что состояние не будет повреждено.

Существует определенное требование, которому вы должны соответствовать внутри CER (например, вам не разрешено упаковывать вещи внутри CER).

1 голос
/ 09 июля 2009

Это не имеет ничего общего с неизменяемостью, проверьте документацию MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...