RaY*_*ell 5 .net c# fxcop coding-style stylecop
我正在使用StyleCop和FxCop工具来改进我的代码,但我来到了一个有两个规则的地方,一个在StyleCop中,另一个在FxCop中相互排斥.如果我修复我的代码以匹配StyleCop中的规则,则FxCop验证失败,反之亦然.
第一个规则是StyleCop的SA1200,它表示所有using指令必须放在命名空间内.
所有using指令必须放在命名空间内.
所以我做了类似的事情
namespace MyNamespace
{
using System;
...
}
Run Code Online (Sandbox Code Playgroud)
StyleCop没问题,没有更多的警告.现在我运行FxCop验证,它告诉我CA1014被违反:
使用CLSCompliant标记'MyApp.dll'(true),因为它公开了外部可见类型.
要解决这个问题,我应该这样做:
[ClsCompliant(true)]
namespace MyNamespace
{
...
}
Run Code Online (Sandbox Code Playgroud)
但现在我无法构建我的项目,因为ClsCompliant
属性未被识别(因为它来自System
我包含在其中的命名空间MyNamespace
).所以,如果我using System;
在MyNamespace
声明之外移动指令.这将使我的代码编译,但它将再次破坏StyleCop的规则.
有没有办法处理这个问题,除了禁用StyleCop或FxCop中的一个规则?如果不可能我禁用哪个规则?哪个不太重要?
mac*_*kow 15
使用完整属性名称:
[System.CLSCompliant(true)]
namespace MyNamespace
{
...
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句:如果你想把你的整个程序集标记为CLSCompliant,请放
[assembly: System.CLSCompliant(true)]
Run Code Online (Sandbox Code Playgroud)
在Properties/AssemblyInfo.cs文件中
归档时间: |
|
查看次数: |
4020 次 |
最近记录: |