Поделиться через


CA1020: не используйте пространства имен с несколькими типами

TypeName

AvoidNamespacesWithFewTypes

CheckId

CA1020

Категория

Microsoft.Design

Критическое изменение

Критическое изменение

Причина

В пространстве имен, отличном от глобального пространства имен, содержится меньше пяти типов.

Описание правила

Убедитесь, что каждое из используемых пространств имен имеет логическую организацию и существует веская причина для помещения типов в сильно разреженное пространство имен. Пространства имен должны содержать типы, которые используются во многих скриптах. Если их приложения являются взаимоисключающими, типы следует поместить в отдельные пространства имен. Например, в пространстве имен System.Web.UI содержатся типы, используемые в веб-приложениях, а в пространстве имен System.Windows.Forms содержатся типы, используемые в приложениях на основе Windows. Оба пространства имен содержат типы, которые управляют некоторыми аспектами пользовательского интерфейса, однако эти типы не предназначены для применения в одних и тех же приложениях. Поэтому их помещают в разных пространствах имен. Также полезно правильно организовывать пространства имен, поскольку в этом случае повышается возможность обнаружения функций. Изучив иерархию пространства имен, пользователи библиотек должны иметь возможность найти типы, которые реализуют ту или иную функцию.

Примечание

Чтобы следовать этой рекомендации, не следует смешивать типы и разрешения времени разработки с другими пространствами имен.Эти типы принадлежат собственным пространствам имен, вложенным в главное пространство имен, и такие пространства имен должны заканчиваться постфиксами .Design и .Permissions соответственно.

Устранение нарушений

Чтобы устранить нарушение данного правила, попробуйте объединить пространства имен, содержащие небольшое количество типов, в одно пространство.

Отключение предупреждений

Если пространство имен не содержит типов, используемых типами из других пространств имен, то отключение предупреждений о нарушении данного правила безопасно.