不能使用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
。