3

默认情况下,StyleCop(4.7.14.0)具有“分析设计器文件”设置,我想知道是否有任何推理可以证明设计器生成的文件上的代码样式检查。为什么“分析设计器文件”是StyleCop的默认设置?

我知道我可以(以及如何)禁用它检查这些文件(我正在考虑这样做),但问题是,为什么它会默认分析这些?

这些文件不是独自存放的吗?为什么我们应该试着让它们符合StyleCop?

+0

这是微软的默认设置。不是你的,你无法做任何事情。 – 2012-03-26 12:52:13

+0

@HansPassant好吧,我可以改变它,它会存储在'Settings.StyleCop'文件中,如果这是你的意思,那么这个文件将被项目范围内的任何人检出。但是我想知道它背后是否有一些推理(实际上'* .designer.cs'文件默认情况下甚至不符合StyleCop)。这似乎很奇怪,因为StyleCop开发人员肯定知道如果将其保留在默认情况下会发生什么(并且唯一的在线讨论似乎是关于如何更改默认设置,而不是为什么它首先出现)。 – 2012-03-26 16:01:43

回答

0

我能想到的主要原因是,没有绝对的保证名称中带'designer'的文件只会自动生成。

在这些强烈分离和使用详细和明确名称的能力的日子里,它可能只是在默认情况下小心谨慎。

但我同意,如果你确定它们总是自动生成的,那么你不应该尝试清理它们。

OTOH,我的Dynamics CRM服务器生成一个12MB的XRM参考文件,所以我倾向于修剪那个!

+0

那么,后缀必须是'.Designer.cs',例如'WebDesigner.cs'不会被视为设计器文件。我真的怀疑人们会将文件命名为“MyClass.Designer.cs”。另外,如果你碰巧有一个名为'Designer.cs'的文件,它不会有完整的后缀,所以我敢肯定它也不会被忽略。不过,我有点好奇你如何清理12 MB文件。 – 2012-03-25 23:52:14

+0

一个特别的事情是将类删除到我不使用的CRM功能,虽然这是一件相当罕见的事情;最重要的是实现部分类,这样我就可以将我需要的功能分成多个文件,这些文件单独不会阻塞编译器/ resharper。 – 2012-03-26 00:19:55

1

可能需要将生成的代码保存为与手动创作的代码相同的标准。当然,对于像StyleCop那样的纯代码风格问题,这比FxCop这样的工具所涉及的“正确性”问题更不重要,但即使对于风格来说,检查工具生成的代码仍然是有说服力的理由的问题。例如: -

  1. 如果所生成的目标代码的工具是一个撰写的工具,那么它是不是在所有不寻常的以将其保持为手工编写代码同样的标准。毕竟,这是一种完全控制生成代码的内容和风格的情况。

  2. 从实际角度来看,该工具可以在生成代码后的任何时候被移除或禁用,在这种情况下,最终可以手动维护代码。如果强制执行样式规则以增强可读性和可维护性,则允许生成的代码偏离编码标准太多可能不是理想的。

+0

这听起来似乎是一种可能的情况,即检查我们自己制作的工具生成的代码样式。但是看起来很奇怪,缺省值是“Check'.designer.cs'文件,但不检查'.generated.cs'文件”(所以它明确默认不检查工具生成的代码的样式,而是检查Windows窗体设计器代码)。 – 2012-03-26 16:08:23

相关问题