C# 名为MultiString的类的Visual Studio 2010代码分析警告CA1704

C# 名为MultiString的类的Visual Studio 2010代码分析警告CA1704,c#,visual-studio-2010,warnings,code-analysis,ca1704,C#,Visual Studio 2010,Warnings,Code Analysis,Ca1704,我对VisualStudio2010中的代码分析工具有问题;我有一个用来处理多个字符串的类,因此我将我的类命名为MultiString。当我运行代码分析工具时,我得到警告: CA1704:Microsoft。命名:更正类型名称“MultiString”中“Multi”的拼写 当使用术语multiString作为参数名或IsMultiApplicationCard作为属性名时,也会出现同样的问题 多亏了这个主题,我发现术语multi在默认情况下是无法识别的。现在我想知道为什么(我不是母语)。“多重

我对VisualStudio2010中的代码分析工具有问题;我有一个用来处理多个字符串的类,因此我将我的类命名为
MultiString
。当我运行代码分析工具时,我得到警告:

CA1704:Microsoft。命名:更正类型名称“MultiString”中“Multi”的拼写

当使用术语
multiString
作为参数名或
IsMultiApplicationCard
作为属性名时,也会出现同样的问题


多亏了这个主题,我发现术语multi在默认情况下是无法识别的。现在我想知道为什么(我不是母语)。“多重”不是一个有效的词吗?我应该用什么词来代替?或者您是否建议使用多应用程序和多字符串?

有关如何修复此“冲突”的详细信息,请参阅microsoft字典中没有“多个”。您可以将其更改为,例如,“Multi”…或者您可以将“Multi”添加到自定义词典中。

MultiString
通过代码分析解析为
Multi,string
,然后根据词典对其进行检查
Multi
是一个单词的有效前缀,但不是单词本身,即
MULTICLORED
是一个单词,因此不应将其写入
MULTICLORED
。因此,Microsoft在
C:\Program Files(x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\CustomDictionary.xml
中提供的标准词典明确指定
multi
无法识别;这反过来又意味着这是无效的:代码分析仍然会拒绝它——但不会解释字典条目无效的原因


您最好的选择似乎是使用
Multistring
(正如您自己所指出的);第二个最好的方法是针对这种特殊情况抑制CA1704;管理员可能会编辑标准词典,但在任何更新后都需要重复,这似乎是一个相当肮脏的伎俩。

感谢您的回复-但“未识别”是指在Microsoft词典中明确标记为未识别。因此,我无法将其添加到已识别的单词中(或者至少它无法按预期工作)。如果您遵循该链接,它将告诉您如何创建自定义词典以自定义代码分析检查行为。您的自定义词典不仅仅是一个简单的单词列表。我熟悉代码分析词典,但在这种特殊情况下,添加术语/单词没有帮助;在基本/默认Microsoft字典中,Multi被标记为无法识别。这不能用自定义词典推翻。有关更多信息,请查看我对DaveShaw的评论。感谢您的回复-但“未识别”是指在Microsoft字典中明确标记为未识别。因此,我无法将其添加到已识别的单词中(或者至少它没有按预期工作)。多字符串是一个有效的单词吗?还是多应用?通常我不会太在意这些东西,但在我开发C#库的过程中,我认为遵守命名约定会很有用。@Korexio“我的意思是在Microsoft字典中明确标记为未识别的”你对此有参考吗?Multistring可能不是一个有效的英语单词,但它是一个有效的单词“Microsoft英语”单词…:)它甚至在词汇表中。如果这正是您在代码中使用的多字符串,则库的用户应该习惯使用该单词。@DaveShaw C:\Program Files(x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\CustomDictionary.xml在/Dictionary/Unrecogned/Word下包含multi。没有其他可用的参考。将其添加到已识别单词列表中仅当我将其作为单个单词使用时有效-多字符串和多应用程序。因为multi似乎是前缀(而不是我认为的单词)该走了,谢谢你的帮助!