这个.NET属性有什么作用?

Joa*_*nge 2 .net c# attributes

 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
Run Code Online (Sandbox Code Playgroud)

我在反射器中看到了.NET中基类库的这个属性.也许内部支持不可变保证?

Sam*_*ron 5

在这里这里阅读它.

简短的总结是它指示运行时保证在面对任何异步异常(如ThreadAbortException)时执行finally块.

标准CLR主机将阻止中止线程,同时最终块正在执行.

但是,当SQL Server托管CLR时,可能会触发在CLR运行finally子句时可能发生的粗暴中止.在这种情况下,CERs用于确保国家不腐败.

您必须在CER内部满足某些要求(例如,您不得在CER内部装箱).

  • CER =约束执行区域,请确保您阅读MSDN上的文档,它们更详细地介绍了这一点. (2认同)