2013-05-09 29 views
1

我想抑制CA1709:标识符应该正确放置,位于 public class IDd。例如,我想用IDd作为正确的单词。但我不能。我试过代码分析字典中的所有内容:无法以任何方式抑制CA1709

<?xml version="1.0" encoding="utf-8"?> 
<Dictionary> 
    <Words> 
    <Unrecognized> 
     <Word></Word> 
    </Unrecognized> 
    <Recognized> 
     <Word>d</Word> 
     <Word>IDd</Word> 
    </Recognized> 
     <Deprecated> 
      <Term PreferredAlternate=""></Term> 
     </Deprecated> 
     <Compound> 
      <Term CompoundAlternate="IDd">IDd</Term> 
     </Compound> 
    <DiscreteExceptions> 
     <Term>IDd</Term> 
    </DiscreteExceptions> 
    </Words> 
    <Acronyms> 
    <CasingExceptions> 
     <Acronym>IDd</Acronym> 
     <Acronym>ID</Acronym> 
     <Acronym>d</Acronym> 
    </CasingExceptions> 
    </Acronyms> 
</Dictionary> 

但是没有什么能帮助我在这种情况下添加这项工作。你会建议什么?

+0

你想要它抑制了一个案件,或整个解决方案? – Mightymuke 2013-05-10 04:19:10

+0

使用该类上的[SuppressMessage]属性。 – 2013-05-10 07:47:58

+0

我想压制它的所有解决方案。我可以通过[SuppressMessage]属性来抑制它,但是通过这个属性来压制所有地方的所有单词是错误的。为此,有代码分析字典。但它不能很好地工作,或者我不知道在这种情况下使用它... – 2013-05-10 09:14:51

回答

4

这里的问题是“Dd”,而不是完整的“IDd”,这是CA1709违规消息应该显示的内容。

这可以解决,如果你认为是一个实际的字相当加入“DD”的字典作为一个公认的一句话:

<?xml version="1.0" encoding="utf-8" ?> 
<Dictionary> 
    <Words> 
     <Recognized> 
      <Word>dd</Word> 
     </Recognized> 
    </Words> 
</Dictionary> 

也可以将其作为一个缩写外壳例外,如果你不考虑这是一个字仍然想要使用帕斯卡套管:

<?xml version="1.0" encoding="utf-8" ?> 
<Dictionary> 
    <Acronyms> 
     <CasingExceptions> 
      <Acronym>Dd</Acronym> 
     </CasingExceptions> 
    </Acronyms> 
</Dictionary> 
+0

第一个示例与单词不起作用...这就是对我感到困惑..为什么我不能在字典中加入IDd ...既不是IDD也不是DD ..第二个是工作,但它也不是完美的,每个Dd都会被套上异常。但我只想要单词IDD。 – 2013-05-10 13:39:02

+0

“IDd”排除不起作用,因为规则有一个特殊情况可以忽略领先的“I”(用于接口名称,但会被规则滥用)。将“dd”添加到识别的单词列表对我来说工作得很好。您正在使用哪个版本的Visual Studio代码分析或FxCop? – 2013-05-10 13:46:25

+0

VS2012 update2 ... so CA 11.0 MSBUILD 4 – 2013-05-10 14:01:57