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 игнорируется при применении к параметрам программных элементов или возвращаемым значениям.

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

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

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

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

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

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

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

Примечание

текущий компилятор Microsoft 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)

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

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