代码合约+ Sandcastle - 任何自定义例外部分的方法?

时间:2011-12-13 19:33:31

标签: c# documentation code-contracts sandcastle xml-documentation

  • 我正在使用Code Contracts ver: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文档部分。我是否必须再次这样做以获得我需要的东西?


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

1 个答案:

答案 0 :(得分:3)

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

Requires<TException>(bool condition, string userMessage)

但是,您的消息将在“Precondition failed”之后附加,然后是不匹配的条件。如果Sandcastle不承认它,我认为这不是代码合同中的错误,因为该消息对我来说是正确的。