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