fxcop 自定义规则 - 避免每个文件有多个类

Posted

技术标签:

【中文标题】fxcop 自定义规则 - 避免每个文件有多个类【英文标题】:fxcop custom rules - Avoid having more than one class per file 【发布时间】:2009-11-23 15:51:38 【问题描述】:

由于 fxcop 是一个程序集检查器,是否可以创建一个自定义规则来检查每个文件是否有多个类?

如果是,该怎么做?

感谢您的帮助

【问题讨论】:

【参考方案1】:

这是不可能的。由于 FxCop 只检查二进制文件,因此无法判断一个类是由哪个文件定义的。

但是,请查看StyleCop,它附带了这样一个开箱即用的规则。 (SA1402:FileMayOnlyContainASingleClass)

【讨论】:

@SLaks:抱歉,我没有看过 StyleCop 一词,错过了您提到的确切规则。道歉和 +1 :) 感谢您的回答。对 fxcop 来说太糟糕了 可能有 pdb 文件,但 StyleCop 更适合这种检查。【参考方案2】:

正如您自己所说:FxCop 检查已编译的程序集。因此,根本不再有类似源代码文件的东西。所以答案是否定的。

但 MS StyleCop(与 FxCop 非常相似,但分析源代码文件而不是 IL 代码)可能能够满足您的需求。我不知道,如果这样的 StyleCop 规则已经存在 - 如果是这样,那么它绝对不在 StyleCop “开箱即用”的规则集中(即 MS 预定义的规则......)。

HTH!

编辑: 我现在已经看到,实际上有这样的规则(见上面的答案)......

【讨论】:

StyleCop中有这样的规则;看我的回答。【参考方案3】:

我的想法……

鉴于调试器可以显示方法/类的代码。 调试器必须能够获取该方法正在使用的文件 pdb 文件。 所以您应该也可以这样做。

抱歉,我不知道如何从 pdb 文件中读取信息。

【讨论】:

以上是关于fxcop 自定义规则 - 避免每个文件有多个类的主要内容,如果未能解决你的问题,请参考以下文章

fxcop 自定义规则 - 检查源代码以查找新关键字

将自定义 Fxcop 规则与现有 Fxcop 规则集成

Fxcop 自定义规则未显示在 Fxcop GUI 中

FxCop 自定义规则文档。为啥找不到我的网址?

FxCop 自定义规则在 VS2012 中没有名称(但“官方”规则有名称)

是否有自定义 FxCop 规则可以检测未使用的 PUBLIC 方法?