FxCop1.36之二:规则的追加翻译

在网上看到了很多人都研究FxCop所提供的*Rules.Dll,但是翻译的资料有限。

本人目前看到比较全的是deadshot123空间里记录的《FxCop 设计规则 》。

链接的地址是:

http://blog.csdn.net/deadshot123/archive/2006/04/07/654373.aspx

 

我随即整理了一下,把后面几条规则也翻译了出来:(英文原版的在MSDN里面有,只不过链接地址需要在FxCop规则介绍中链接过去....MSDN没有比较统一说明的页面。每一个规则都是单独分开的网页。)

 

Mobility Rules 移动规则
1.DoNotUseIdleProcessPriority
不要使用 Idle 进程优先级

2.DoNotUseTimersThatPreventPowerStateChanges
不要使用阻止电源状态更改的计时器


Portability Rules 可携带规则
1.PInvokeDeclarationsShouldBePortable
P/Invoke 声明应为可移植声明

2.ValueTypeFieldsShouldBePortable
值类型字段应该是可移植的


Security Rules 安全规则
1.AptcaMethodsShouldOnlyCallAptcaMethods
APTCA 方法应只调用 APTCA 方法

2.AptcaTypesShouldOnlyExtendAptcaBaseTypes
APTCA 类型应只扩展 APTCA 基类型

3.ArrayFieldsShouldNotBeReadOnly
数组字段不应为只读

4.CallGCKeepAliveWhenUsingNativeResources
使用本机资源时调用 GC.KeepAlive

5.CatchNonClsCompliantExceptionsInGeneralHandlers
在常规处理程序中捕捉非 CLSCompliant 异常

6.DoNotDeclareReadOnlyMutableReferenceTypes
不要声明只读可变引用类型

7.DoNotIndirectlyExposeMethodsWithLinkDemands
不要使用链接请求间接公开方法

8.MethodSecurityShouldBeASupersetOfType
方法安全性应是类型安全性的超集

9.OverrideLinkDemandsShouldBeIdenticalToBase
重写的链接请求应与基相同

10.PointersShouldNotBeVisible
指针应为不可见

11.ReviewDeclarativeSecurityOnValueTypes
检查有关值类型的声明性安全

12.ReviewDenyAndPermitOnlyUsage
检查 deny 权限和 permit only 权限的使用情况

13.ReviewImperativeSecurity
检查命令性安全

14.ReviewSuppressUnmanagedCodeSecurityUsage
检查 SuppressUnmanagedCodeSecurityAttribute 用法

15.ReviewVisibleEventHandlers
检查可见的事件处理程序

16.SealMethodsThatSatisfyPrivateInterfaces
密封满足私有接口的方法

17.SecureAsserts
保护断言。在不执行任何安全检查的情况下断言安全权限,则会在代码中留下可利用的安全漏洞。

18.SecureSerializationConstructors
保护序列化构造函数

19.SecuredTypesShouldNotExposeFields
受保护的类型不应公开字段

20.SecurityTransparentAssembliesShouldNotContainSecurityCriticalCode
安全透明程序集不应包含安全关键代码

21.SecurityTransparentCodeShouldNotAssert
安全透明代码不应断言

22.SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode
安全透明代码不应引用非公共的安全关键成员

23.StaticConstructorsShouldBePrivate
静态构造函数应为私有

24.TypeLinkDemandsRequireInheritanceDemands
类型链接请求需要继承请求

25.WrapVulnerableFinallyClausesInOuterTry
在外部 try 块中包装易受攻击的 finally 子句

 

Usage Rules 使用规则
1.AttributeStringLiteralsShouldParseCorrectly       
应正确分析属性字符串文本       

2.CallBaseClassMethodsOnISerializableTypes       
对 ISerializable 类型调用基类方法       

3.CallGCSuppressFinalizeCorrectly       
正确调用 GC.SuppressFinalize       

4.CollectionPropertiesShouldBeReadOnly       
集合属性应该是只读的       

5.DisposableFieldsShouldBeDisposed 
应释放可释放的字段 

6.DisposableTypesShouldDeclareFinalizer 
可释放类型应声明终结器 

7.DoNotCallOverridableMethodsInConstructors 
不要在构造函数中调用可重写的方法 

8.DoNotDecreaseInheritedMemberVisibility 
不要降低继承成员的可见性 

9.DoNotIgnoreMethodResults 
不要忽略方法结果 
使用场合: 创建了新对象,但从未使用它。
                   调用了创建并返回新字符串的方法,但从未使用此新字符串。
                   COM 或 P/Invoke 方法返回的 HRESULT 或错误代码从未使用过。

10.DoNotMarkEnumsWithFlags 
不要使用 FlagsAttribute 标记枚举 

11.DoNotMarkServicedComponentsWithWebMethod 
不要使用 WebMethod 标记服务组件 

12.DoNotRaiseExceptionsInExceptionClauses 
不要在异常子句中引发异常 

13.DoNotRaiseReservedExceptionTypes 
不要引发保留的异常类型 

14.DoNotShipUnreleasedResourceFormats 
不要发行未发布的资源格式

15.FinalizersShouldBeProtected
终结器应受到保护

16.FinalizersShouldCallBaseClassFinalizer
终结器应调用基类的终结器

17.ImplementISerializableCorrectly
正确实现 ISerializable

18.ImplementSerializationConstructors
实现序列化构造函数

19.ImplementSerializationMethodsCorrectly
正确实现序列化方法

20.InitializeValueTypeStaticFieldsInline
初始化内联值类型的静态字段

21.InstantiateArgumentExceptionsCorrectly
正确实例化参数异常

22.MarkAllNonSerializableFields
标记所有不可序列化的字段

23.MarkISerializableTypesWithSerializable
用 SerializableAttribute 标记 ISerializable 类型

24.MarkWindowsFormsEntryPointsWithStaThread
使用 STAThread 标记 Windows 窗体的入口点

25.MembersShouldDifferByMoreThanReturnType
成员不应只是返回类型不同

26.NonConstantFieldsShouldNotBeVisible
非 常数 字段不应该是可见的

27.OperationsShouldNotOverflow
运算不应溢出

28.OperatorOverloadsHaveNamedAlternates
运算符重载具有命名的备用项

29.OperatorsShouldHaveSymmetricalOverloads
运算符重载具有命名的备用项

30.OverloadOperatorEqualsOnOverridingValueTypeEquals
重写 ValueType.Equals 时应重载相等运算符

31.OverrideEqualsOnOverloadingOperatorEquals
重载等号运算符时重写 Equals 方法

32.OverrideGetHashCodeOnOverridingEquals
重写 Equals 时重写 GetHashCode

33.PassSystemUriObjectsInsteadOfStrings
传递 System.Uri 对象而不是字符串

34.ProvideDeserializationMethodsForOptionalFields
为可选字段提供反序列化方法

35.RethrowToPreserveStackDetails
再次引发以保留堆栈详细信息

36.ReviewUnusedParameters
检查未使用的参数

37.TestForNaNCorrectly
正确测试 NaN

38.UseManagedEquivalentsOfWin32Api
使用 Win32 API 的托管等效项

39.UseParamsForVariableArguments
对个数可变的参数使用 params

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值