[FxCop.设计规则]5. 避免命名空间中包含太少的类型

原创 2005年05月23日 21:54:00

5.     避免命名空间中包含太少的类型

原文引用:

Avoid namespaces with few types

TypeName:

AvoidNamespacesWithFewTypes

CheckId:

CA1020

Category:

Microsoft.Design

Message Level:

Warning

Certainty:

50%

Breaking Change:

Breaking


Cause: A namespace other than the global namespace contains fewer than five types.

Rule Description

Make sure that there is a logical organization to each of your namespaces, and that there is a valid reason for putting types in a sparsely populated namespace. Namespaces should contain types that are used together in most scenarios. When their applications are mutually exclusive, types should be located in separate namespaces. For example, the System.Web.UI namespace contains types that are used in Web applications, and the System.Windows.Forms namespace contains types that are used in Windows-based applications. Even though both namespaces have types that control aspects of the user interface, these types are not designed to be used in the same application, and are therefore located in separate namespaces. Careful namespace organization can also be helpful because it increases the discoverability of a feature. By examining the namespace hierarchy, library consumers should be able to locate the types that implement a feature.

Note: Design-time types and permissions should not be merged into other namespaces to comply with this guideline. These types belong in their own namespaces below your main namespace, and the namespaces should end in .Design and .Permissions, respectively.

How to Fix Violations

To fix a violation of this rule, try to combine namespaces that contain a small number of types into a single namespace.

When to Exclude Messages

It is safe to exclude a message from this rule when the namespace does not contain types that are used with the types in your other namespaces. It is also safe to exclude a violation if there are fewer than five types in the library.

 

 

引起的原因:

一个非全局命名空间包含少于5个类型。

描述:

确保你的每一个命名空间对应到一个逻辑结构;除非必要,否则不要把你的类型放在一个新的命名空间里。

一个命名空间应该包含一组经常被使用在同一个场景中的类型。当一组类型的使用场景是互斥的,他们应该被放在不同的命名空间中。例如:Web应用程序使用System.Web.UI命名空间中的类型,而Windows-based应用程序使用System.Windows.Forms命名空间中的类型。即使两个命名空间都包含UI控制方面的类型,这些类型不被设计为在同一个应用程序中使用,因此,他们仍然被放在不同的命名空间中。细致的命名空间结构同样很有帮助,它增加了用户发现库功能的能力,通过调查命名空间,库用户将能够定位一个实现的功能。

 

 

备注:设计时类型和许可相关的类型将不符合这条策略,它们将在主命名空间下面拥有它门自己的命名空间。并且分别以.Design.Permissions结尾。

修复:

如果需要修复这个问题,可以尝试将几个命名空间合并一个单独的命名空间中。

例外:

如果一个命名空间不包含任何与其它命名空间中的类型同时使用的类型,可以忽略这条消息。如果你的库只包含少于5个类型,这条规则也可以忽略。

[FXCOP.设计规则]5. 避免命名空间中包含太少的类型

原文引用: Avoid namespaces with few types ...
  • timewolf
  • timewolf
  • 2006年06月06日 14:51
  • 982

类型XX已经包含XX的定义

由于AddNews页面的功能和ModifyNews页面的功能完全相似,于是我采用了直接复制AddNews页面的方式,以为只需要将复制过来的AddNews的名称改为ModifyNews页面就可以。可是它...
  • wang13667539325
  • wang13667539325
  • 2014年01月02日 21:25
  • 3025

C#命名空间“Microsoft.Office”中不存在类型或命名空间名称的终极解决方法

在开发过程中,调用网上一个EXCEL类时,已经引用了COM组件:Microsoft Excel 11.0 Object Library,还是提示这个错误或提示:命名空间“Microsoft offic...
  • zhu2695
  • zhu2695
  • 2014年12月10日 21:14
  • 3931

[FxCop.设计规则] 3. 避免定义空的接口

  版权声明:   本文由timewolf完成,首发于CSDN...
  • timewolf
  • timewolf
  • 2006年06月06日 10:49
  • 914

[FxCop.设计规则]3. 避免定义空的接口

3.     避免定义空的接口原文引用:Avoid empty interfacesTypeName:AvoidEmptyInterfacesCheckId:CA1040Category:Micros...
  • cajon
  • cajon
  • 2005年05月16日 21:22
  • 911

[FxCop.设计规则]6. 避免使用输出参数

6.     避免使用输出参数原文引用:Avoid out parametersTypeName:AvoidOutParametersCheckId:CA1021Category:Microsoft....
  • cajon
  • cajon
  • 2005年05月28日 18:23
  • 1005

java的java.io.File的学习

/**  *   */ package fileStudy; import java.io.File; import java.io.IOException; /**  ...
  • u014792342
  • u014792342
  • 2015年12月21日 17:59
  • 359

[FxCop.设计规则]4. 避免太多的范型参数

4.     避免太多的范型参数原文引用:Avoid excessive parameters on generic typesTypeName:AvoidExcessiveParametersOnG...
  • cajon
  • cajon
  • 2005年06月02日 20:20
  • 862

vs2015中提示未能找到类型或命名空间名Word

1,将gridview数据导出到word文件中,未能找到类型或命名空间名“Word”(是否缺少 using 指令或程序集引用?) 2,项目-管理Nuget程序包,切换到浏览选项卡,输入interop...
  • dsyzxty
  • dsyzxty
  • 2016年10月03日 12:54
  • 1583

[FxCop.设计规则]10. 类型应该被声明在命名空间中

10.     类型应该被声明在命名空间中翻译概述:命名空间的概念在C++中已经存在,但是对于大多数C++程序员来说,命名空间却很少被用到,C++程序员更喜欢在一组相关的类型前面添加相同的缩写,当项目...
  • cajon
  • cajon
  • 2005年06月09日 20:22
  • 918
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[FxCop.设计规则]5. 避免命名空间中包含太少的类型
举报原因:
原因补充:

(最多只允许输入30个字)