代码契约 + 沙堡 -- 有没有办法自定义异常部分?

7
  • 我正在使用的Code Contracts版本是:1.4.40602.0
  • 我复制了必要的Content和Transforms文件
  • 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个回答

3

使用 Code Contracts 1.4.51019.0 版本,可以使用以下重载:

Requires<TException>(bool condition, string userMessage)

然而,你的消息将会出现在"Precondition failed"和未匹配条件之后。如果 Sandcastle 无法识别它,我认为这不是 Code Contracts 的故障,因为对我来说消息显示正确。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接