示例代码:
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项目,这可能会改变,但我想知道它现在是否已经可用......如果没有,我一定会建议。
答案 0 :(得分:3)
使用Code Contracts 1.4.51019.0,您可以使用重载:
Requires<TException>(bool condition, string userMessage)
但是,您的消息将在“Precondition failed”之后附加,然后是不匹配的条件。如果Sandcastle不承认它,我认为这不是代码合同中的错误,因为该消息对我来说是正确的。