Dot-Net
CA1704 - 微軟似乎屏蔽了“Multi”這個詞?
public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly當我執行程式碼分析時,我收到一個錯誤,因為 Microsoft 無法辨識“Multi”這個詞(想想他們在 中使用它
IMultiValueConverter)。因此,我為糾正此問題所做的是添加 CodeAnalysisDictionary.xml 文件並按照此處提供的步驟進行操作。但是,它似乎並沒有解決問題,我仍然收到程式碼分析警告消息。為了確保這不是辨識單詞部分的錯誤,我添加了另一個類和另一個異常。
public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly public class MutiiSomething { } //NO WARNING <Dictionary> <Words> <Recognized> <Word>Multi</Word> <-- This seems to not do anything... --> <Word>Mutii</Word> <-- This actually does something... --> </Recognized> </Words> </Dictionary>修復它的另一種方法是使用 SuppressMessage,但如果我打算在所有地方使用這個詞,這不是一個合適的解決方案。
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Multi")] public class MultiSomething { } //NO WARNING (Suppressed)Microsoft 是否真的阻止將“Multi”添加到已辨識的單詞中?
您可以參考此回饋票。這顯然是設計使然。
您看到的行為是因為程式碼分析附帶了一個預定義的自定義字典,該字典在發生衝突時始終覆蓋任何其他自定義字典。在這種情況下,“multi”在預設的 FXCop 字典中被列為 <unrecognized> 單詞。
要解決此問題,請打開預設字典 %VS Install Directory%\Team Tools\Static Analysis Tools\FxCop\CustomDictionary.xml 並註釋掉或刪除 <unrecognized> words 部分中的“multi”條目;“multi”將不再在程式碼分析中被標記為拼寫錯誤。