2014-11-21 72 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

相關問題