Compartir vía


CLSCompliantAttribute Clase

Definición

Indica si un elemento de programa cumple con Common Language Specification (CLS). Esta clase no puede heredarse.

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
Herencia
CLSCompliantAttribute
Atributos

Ejemplos

En el ejemplo siguiente se aplica un CLSCompliantAttribute elemento a todo el ensamblado.

using System;
    [assembly: CLSCompliant(true)]

La siguiente declaración genera una advertencia de cumplimiento de CLS porque el tipo UInt32 no se especifica en CLS.

public int SetValue(UInt32 value);

Si la declaración está marcada con , CLSCompliantAttributeno se genera ninguna advertencia o error del compilador.

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

Comentarios

El CLSCompliantAttribute atributo se usa para indicar si un elemento de programa determinado cumple con Common Language Specification (CLS), que define las características que cualquier lenguaje destinado a .NET debe admitir. El cumplimiento de CLS es principalmente preocupante para los desarrolladores de bibliotecas que desean asegurarse de que sus bibliotecas son accesibles en cualquier lenguaje que tenga como destino .NET. Para obtener más información, vea Language Independence and Language-Independent Components(Independencia del lenguaje) y Language-Independent Components (Componentes de Language-Independent).

Puede aplicar el CLSCompliantAttribute atributo a los siguientes elementos de programa: assembly, module, class, struct, enum, constructor, method, property, field, event, interface, delegate, parameter y return value. Sin embargo, la noción de cumplimiento de CLS solo es significativa para ensamblados, módulos, tipos y miembros de tipos, no partes de una firma de miembro. Por lo tanto, CLSCompliantAttribute se omite cuando se aplica a los elementos de programa de parámetros o valores devueltos.

Si no se aplica a CLSCompliantAttribute un elemento de programa, de forma predeterminada:

  • El ensamblado no es conforme a CLS.

  • El tipo solo es conforme a CLS si su tipo de inclusión o ensamblado es conforme a CLS.

  • El miembro de un tipo solo es conforme a CLS si el tipo es conforme a CLS.

Si un ensamblado está marcado como conforme a CLS, cualquier tipo expuesto públicamente en el ensamblado que no sea conforme a CLS debe marcarse con mediante CLSCompliantAttribute un false argumento . De forma similar, si una clase está marcada como conforme a CLS, debe marcar individualmente todos los miembros que no son conformes a CLS. Todos los miembros no compatibles deben proporcionar alternativas conformes a CLS correspondientes.

Los atributos que se aplican a ensamblados o módulos deben producirse después de las cláusulas de C# using (Imports en Visual Basic) y antes del código.

Para obtener más información sobre el uso de atributos, vea Atributos.

Nota:

El compilador de Visual Basic actual Microsoft no genera intencionadamente una advertencia de cumplimiento de CLS; sin embargo, una versión futura del compilador emitirá esa advertencia.

Constructores

CLSCompliantAttribute(Boolean)

Inicializa una instancia de la clase CLSCompliantAttribute con un valor Boolean que indica si el elemento de programa especificado es conforme a CLS.

Propiedades

IsCompliant

Obtiene el valor Boolean que indica si el elemento de programa especificado es conforme a CLS.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también