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

时间:2009-07-08 22:48:57

标签: c# .net attributes

 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]

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

2 个答案:

答案 0 :(得分:5)

了解它herehere

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

标准CLR主机将在最终块执行时阻止中止线程。

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

您必须在CER内部遇到某些要求(例如,您不得在CER内部装箱)。

答案 1 :(得分:1)

它与不变性无关,请查看MSDN documentation