7
  • 我正在使用代码合同版本:1.4.40602.0
  • 我复制了必要的内容和转换文件
  • Sandcastle 根据我的合同要求输出例外情况

示例代码:

public class MyClass
{
    public MyClass(Object obj)
    {
        Contract.Requires<ArgumentNullException>(obj != null);
    }
}

结果输出(在我的文档中):

| Exception                       | Condition                       |
|---------------------------------|---------------------------------|
| System.ArgumentNullException    | obj == null                     |

这还不错但是我想知道是否有办法自定义条件的文本?我试图添加一条用户消息Contract.Requires<ArgumentNullException>(obj != null, "obj is null.");,但这并没有解决任何问题。

过去,我不得不为异常编写自己的 xml 文档部分。我是否必须再次这样做才能得到我需要的东西?


免责声明:由于 Code Contracts(目前)是一个 DevLabs 项目,这可能会改变,但我想知道它现在是否已经可用......如果没有,我一定会建议它。

4

1 回答 1

3

使用 Code Contracts 1.4.51019.0,您可以使用重载:

Requires<TException>(bool condition, string userMessage)

但是,您的消息将附加在“前提条件失败”之后,然后是不匹配的条件。如果 Sandcastle 无法识别它,我相信这不是代码合同中的错误,因为该消息对我来说是正确的。

于 2012-12-13T18:07:23.773 回答