как настроить кодовые контракты в интерфейсе

Я не могу настроить Code Contracts в своем классе. Я следил за документацией и примером, но это не работает.

Я бы вставил условие Code Contracts в свой интерфейс, здесь мой код

Интерфейс

 [ContractClass(typeof(ArticleBLLContract))]
 public interface IArticleBLL
 {
    int getArticleNSheet(string IdBox);
    IEnumerable<IArticle> getArticleValue(string IdBox, string IdLanguage);
}

The Contract Class

[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;
        }
    }
}

I ' Это моя конфигурация проекта Code Contracts Config

Что-то не так?

Спасибо!

7
задан Faber 12 April 2011 в 12:28
поделиться