C# 合同不存在';行不通
我遇到了C# 合同不存在';行不通,c#,code-contracts,C#,Code Contracts,我遇到了系统.诊断.合同的问题 如果我使用了合同要求(条件),那么所有工作都会按预期进行。 但是我需要一个自定义异常,所以我尝试了Contract.Requires(condition) 当条件为false时,我期望出现ToSortException异常,但我什么也没有得到。在调试器中我可以看到,这一行被忽略了 ToSortException是一个公共类,它实现了Exception,并有3个公共构造函数 有人知道我做错了什么吗 异常类: public class ToShortException
系统.诊断.合同的问题
如果我使用了合同要求(条件)
,那么所有工作都会按预期进行。
但是我需要一个自定义异常,所以我尝试了Contract.Requires(condition)
当条件
为false时,我期望出现ToSortException
异常,但我什么也没有得到。在调试器中我可以看到,这一行被忽略了
ToSortException
是一个公共类,它实现了Exception
,并有3个公共构造函数
有人知道我做错了什么吗
异常类:
public class ToShortException : Exception
{
public ToShortException()
{
}
public ToShortException(string message) : base(message)
{
}
public ToShortException(string message, Exception inner) : base(message, inner)
{
}
}
类的方法:
public IDictionary<string, string> getIncident(string name)
{
Contract.Requires(!string.IsNullOrWhiteSpace(name)); //works fine
Contract.Requires<ToShortException>(name.Length == 7); //got not checked
return _original.getIncident(name);
}
公共IDictionary getIncident(字符串名称)
{
Contract.Requires(!string.IsNullOrWhiteSpace(name));//工作正常
Contract.Requires(name.Length==7);//未选中
返回_original.getIncident(名称);
}
我找到了解决方案。“项目设置->代码合同->组装模式”必须为“标准合同要求”
默认值为“自定义参数验证”。请包含您的代码。您的问题是否可能与相关?我认为不相关,但
如果then then THOW
是另一种选择。但是整个项目在合同
下运行良好(这一行除外)。