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 применяется, по умолчанию:

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

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

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

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

Атрибуты, применяемые к сборкам или модулям, должны возникать после предложений C# using (Importsв 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)

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

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