我无法在类里面配置代码契约。我已按照文档和示例进行操作,但它不起作用。
我想在我的界面中插入代码契约条件,这里是我的代码
界面
[ContractClass(typeof(ArticleBLLContract))]
public interface IArticleBLL
{
int getArticleNSheet(string IdBox);
IEnumerable<IArticle> getArticleValue(string IdBox, string IdLanguage);
}
合约类
[ContractClassFor(typeof(IArticleBLL))]
public sealed class ArticleBLLContract : IArticleBLL
{
int IArticleBLL.getArticleNSheet(string IdBox)
{
Contract.Requires<ArgumentOutOfRangeException>(!String.IsNullOrEmpty(IdBox),"IdBox has no valid value");
return default(int);
}
IEnumerable<Base.Article.IArticle> IArticleBLL.getArticleValue(string IdBox, string IdLanguage)
{
Contract.Requires<ArgumentOutOfRangeException>(!String.IsNullOrEmpty(IdBox), "IdBox has no valid value");
Contract.Requires<ArgumentOutOfRangeException>(!String.IsNullOrEmpty(IdLanguage), "IdLanguagehas no valid value");
Contract.Ensures(Contract.Result<IEnumerable<Base.Article.IArticle>>() != null, "Return value is out of Range");
return default(IEnumerable<Base.Article.IArticle>);
}
}
申请合约的类
public class ArticleBLL : IArticleBLL
{
public int getArticlNSheet(string IdBox)
{
try
{
return _Dal...
}
catch (Exception ex)
{
throw ex;
}
}
public IEnumerable<IArticle> getArticleValue(string IdBox, string IdLanguage)
{
IEnumerable<IArticle> article = null;
try
{
article = _Dal...
return article;
}
catch (Exception ex)
{
throw ex;
}
}
}
我试图在这一行中插入一个断点
Contract.Requires<ArgumentOutOfRangeException>(!String.IsNullOrEmpty(IdBox),"IdBox has no valid value");
但是当我调用这个方法时它从不通过这里 这是我的项目配置
有什么问题吗?
谢谢!
最佳答案
您配置中的汇编模式应为“标准契约(Contract)要求”。
关于c# - 如何在界面中配置代码契约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5635163/