代码合同运行时检查异常

时间:2012-06-29 13:37:46

标签: c# code-contracts

我们在代码库中使用Microsoft的代码合同。

项目中包含Contract.Requires个语句,没有发布的构建配置,勾选了“执行运行时合同检查”复选框。

当发布版本命中Contract.Requires语句时,会生成异常。这最终会涓涓细流并导致使用代码契约的Web服务中的System.ServiceModel.CommunicationException

在例外**中没有任何迹象表明这是代码合同问题。

有没有办法揭露这是代码合同问题?

通过勾选发布版本配置的“执行运行时合同检查”复选框解决了该问题,但最好还是在运行时提供更好的诊断信息。

enter image description here

**仍在努力挖掘内部异常。

1 个答案:

答案 0 :(得分:4)

即使您不想要运行时检查,也始终需要重写器。该选项的名称具有误导性!如果要关闭运行时检查,则需要启用该复选框,但将下拉列表设置为“无”。

如果您没有启用重写器,代码将只调用Contracts类中的实际方法,这实际上只是重写器访问的伪方法。如果你真的打电话给他们,他们就会抛出异常。