代码通过通用助手签订合同

时间:2011-07-05 04:24:55

标签: code-contracts

是否需要在以下示例中使用[ContractAbbreviator]属性。如果是,那么即使没有它也能正常工作。任何人都可以验证此代码的正确性。

    /** helper usage class **/
public class UserDataFethcer
{
    public UserData GetUserData(string Userid)
    {
        ContractsHelper.ValidateString(userid);
    }
}

/** contracts usage class **/
public static class ContractsHelper
{
    [ContractAbbreviator] // is this needed or not..
    public static void ValidateString(params string[] stringParameters)
    {
        Contract.Requires<ArgumentException>(Contract.ForAll(stringParameters, strParams => !string.IsNullOrEmpty(strParams)), Message);
    }
}

我发现当我使用[ContractAbbreviator]时,在ValidateString执行ContractsHelper期间会跳过代码行,当我删除[ContractAbbreviator]属性时,工作正常。

1 个答案:

答案 0 :(得分:1)

这取决于您在项目的“代码合同”选项中设置的内容。你有没有开启运行时合同检查?