我有一个Sitecore项目,我在其中使用visualstudio代码分析。我使用Sitecore方法“Assert.ArgumentNotNull”来检查空参数,但是visualstudio代码分析引擎无法识别它并显示“CA1062验证公共方法的参数”消息。
是否有更简单的方法告诉分析引擎“Assert.ArgumentNotNull”执行空检查并且消息无效。
我不想压制消息或禁用它。
答案 0 :(得分:1)
你不能那样使用Sitecore的Assert
类,这就是原因:
Sitecore Assert
类以及NotNullAttribute
和CanBeNullAttribute
是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
参数。