gpt4 book ai didi

c# - 如何在界面中配置代码契约

转载 作者:太空狗 更新时间:2023-10-29 20:22:02 25 4
gpt4 key购买 nike

我无法在类里面配置代码契约。我已按照文档和示例进行操作,但它不起作用。

我想在我的界面中插入代码契约条件,这里是我的代码

界面

 [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");  

但是当我调用这个方法时它从不通过这里这是我的项目配置 Code Contracts Config

有什么问题吗?

谢谢!

最佳答案

您配置中的汇编模式应为“标准契约(Contract)要求”。

关于c# - 如何在界面中配置代码契约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5635163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com