【问题标题】:FxCop Static Code Analysis: Treat "DB" (and others) like "Id"FxCop 静态代码分析:将“DB”(和其他)视为“Id”
【发布时间】:2012-09-27 10:44:59
【问题描述】:

我知道的所有项目——包括实体框架(它是微软本身!)——使用“Db”而不是“DB”。因此他们将“Db”视为缩写。但 FxCop 将该术语视为首字母缩略词,因此您必须将其称为“DB”。 我有类似的其他术语,我喜欢写成缩写。我如何强制 FxCop 这样做?我想要与“Id”相同的行为。 添加自定义字典是我认为的第一步,但是将“Db”添加到 Dictionary/Acronyms/CasingExceptions 是不够的。您仍然可以将其称为“DB”。 “Db”被接受但不是强制的。不知何故,“Id”真的是强迫你不能称它为“ID”。

我已经看过了

“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\CustomDictionary.xml”

弄清楚他们是如何做到的。但是“Id”不是这个默认字典的一部分,也许还有另一个?

有什么想法吗?


另外,我不明白为什么默认情况下“DB”不作为缩写处理,它是“数据库”的缩写,例如“Id”是“标识符”的缩写:

http://msdn.microsoft.com/en-us/library/ms182256(v=VS.80).aspx

也许是因为它不是缩写而是首字母缩略词的其他一些例外情况?让我们说“Doggy Bag”(“DB”)?

【问题讨论】:

    标签: c# .net code-analysis fxcop


    【解决方案1】:

    Id 的处理在 Microsoft.FxCop.Rules.Naming.CasingWordParser.CheckAbbreviation() 中是硬编码的(至少在 VS 10 中),基本上你无法将其连接到该逻辑中。

    至于为什么DB被认为是首字母缩略词而不是缩写,可能是因为“数据库”最初是“数据库”。 (单独的单词形式似乎仍在使用,尽管与复合形式相比它非常罕见。)根据设计指南,如果它是缩写,我们根本不应该使用“db”,所以我想我们应该认为我们很幸运,它首先被认为是首字母缩略词。 ;)

    综上所述,我个人发现,随着时间的推移,两个字母首字母缩略词的大写越来越令人不快。我发现它看起来丑陋且“异常”,而且对于几乎所有第一次接触设计指南的人来说,这似乎是违反直觉的。我从来没有看到过为什么设计指南团队最初认为这可能是一个好主意的解释,但我确实想知道他们中的大多数人是否不希望他们今天有机会扭转这个决定。

    【讨论】:

    • 是的,这可以解释为什么他们将其视为实体框架中的缩写。说得通。 ;) 感谢您的详细回答!
    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 2012-10-04
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多