CLSCompliantAttribute Класс

Определение

Указывает, соответствует ли элемент программы спецификации CLS. Этот класс не наследуется.

public ref class CLSCompliantAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CLSCompliantAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
type CLSCompliantAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
type CLSCompliantAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CLSCompliantAttribute = class
    inherit Attribute
Public NotInheritable Class CLSCompliantAttribute
Inherits Attribute
Наследование
CLSCompliantAttribute
Атрибуты

Примеры

В следующем примере применяется CLSCompliantAttribute ко всей сборке.

using System;
    [assembly: CLSCompliant(true)]

Следующее объявление создает предупреждение о соответствии CLS, так как тип UInt32 не указан в CLS.

public int SetValue(UInt32 value);

Если объявление помечено CLSCompliantAttribute, то предупреждение или ошибка компилятора не создаются.

[CLSCompliant(false)]
 public int SetValue(UInt32 value);

Комментарии

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

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

Если к элементу программы применяется значение no CLSCompliantAttribute , то по умолчанию:

  • Сборка не является CLS-совместимой.

  • Тип является CLS-совместимым, только если его включающий тип или сборка являются CLS-совместимыми.

  • Элемент типа является CLS-совместимым, только если тип является CLS-совместимым.

Если сборка помечена как CLS-совместимая, любой общедоступный тип в сборке, которая не является CLS-совместимой, должен быть помечен с CLSCompliantAttribute помощью аргумента false . Аналогичным образом, если класс помечен как CLS-совместимый, необходимо по отдельности пометить все члены, которые не являются CLS-совместимыми. Все несоответствующие элементы должны предоставлять соответствующие CLS-совместимые альтернативы.

Атрибуты, применяемые к сборкам или модулям, должны встречаться после предложений C# using (Imports в Visual Basic) и перед кодом.

Дополнительные сведения об использовании атрибутов см. в разделе Атрибуты.

Примечание

Текущий Майкрософт компилятор Visual Basic намеренно не создает предупреждение о соответствии CLS, однако в будущем выпуске компилятора будет выдавать это предупреждение.

Конструкторы

CLSCompliantAttribute(Boolean)

Инициализирует экземпляр класса CLSCompliantAttribute логическим значением, указывающим, является ли заданный программный элемент CLS-совместимым.

Свойства

IsCompliant

Возвращает логическое значение, указывающее, является ли заданный программный элемент CLS-совместимым.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

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

(Унаследовано от Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

См. также раздел