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


CA1014: помечайте сборки атрибутом CLSCompliantAttribute

TypeName

MarkAssembliesWithClsCompliant

CheckId

CA1014

Категория

Microsoft.Design

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

Не критическое

Причина

К сборке не применен атрибут System.CLSCompliantAttribute.

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

Спецификация среды CLS определяет ограничения по именованию, типам данных и правилам, которым должны соответствовать сборки, предназначенные для использования в нескольких языках программирования. Для всех сборок нужно явным образом указывать совместимость с CLS, для этого служит атрибут CLSCompliantAttribute. Если атрибут отсутствует у сборки, она не является совместимой.

Сборка, совместимая с CLS, может содержать несовместимые типы или члены типов.

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

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

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

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

Пример

В следующем примере кода показана сборка с атрибутом System.CLSCompliantAttribute, объявляющим ее совместимой с CLS.

Imports System

<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace
using System;

[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
using namespace System;

[assembly:CLSCompliant(true)];
namespace DesignLibrary {}

См. также

Ссылки

System.CLSCompliantAttribute

Основные понятия

Спецификация CLS