2014-11-21 69 views
0

我有一个使用visualstudio代码分析的Sitecore项目。我使用Sitecore方法“Assert.ArgumentNotNull”来检查空参数,但visualstudio代码分析引擎无法识别它并显示“CA1062验证公共方法的参数”消息。VS codeanalysis CA1062即使在空检查后也会触发

而不是创建自定义规则,是否有一种更简单的方法告诉分析引擎“Assert.ArgumentNotNull”执行空检查并且消息无效。

我不想压制消息或禁用它。

回答

1

不能使用Sitecore的Assert类的方式,这就是为什么:

Sitecore的Assert类以及NotNullAttributeCanBeNullAttribute作了方式时,它会执行自己的分析ReSharper的可以理解。

定义 Assert.ArgumentNotNull(object, string)方法的

如下:

[AssertionMethod] 
public static void ArgumentNotNull([CanBeNull] [AssertionCondition(AssertionConditionType.IS_NOT_NULL)] object argument, [CanBeNull] [InvokerParameterName] string argumentName) 

所有这些属性在Sitecore的定义,R#理解它们,因为命名约定。

不幸的是,VS代码分析有另一个命名约定。 ArgumentNotNull应该是这样的你:

public static void ArgumentNotNull([ValidatedNotNull] object argument, string argumentName) 

既然你不能修改Assert类,你不能标记argument参数与ValidatedNotNullAttribute

相关问题