다음을 통해 공유


CLSCompliantAttribute 클래스

프로그램 요소가 CLS(공용 언어 사양) 규격인지 여부를 나타냅니다. 이 클래스는 상속될 수 없습니다.

네임스페이스: System
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
<SerializableAttribute> _
<AttributeUsageAttribute(AttributeTargets.All, Inherited:=True, AllowMultiple:=False)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class CLSCompliantAttribute
    Inherits Attribute
‘사용 방법
Dim instance As CLSCompliantAttribute
[SerializableAttribute] 
[AttributeUsageAttribute(AttributeTargets.All, Inherited=true, AllowMultiple=false)] 
[ComVisibleAttribute(true)] 
public sealed class CLSCompliantAttribute : Attribute
[SerializableAttribute] 
[AttributeUsageAttribute(AttributeTargets::All, Inherited=true, AllowMultiple=false)] 
[ComVisibleAttribute(true)] 
public ref class CLSCompliantAttribute sealed : public Attribute
/** @attribute SerializableAttribute() */ 
/** @attribute AttributeUsageAttribute(AttributeTargets.All, Inherited=true, AllowMultiple=false) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class CLSCompliantAttribute extends Attribute
SerializableAttribute 
AttributeUsageAttribute(AttributeTargets.All, Inherited=true, AllowMultiple=false) 
ComVisibleAttribute(true) 
public final class CLSCompliantAttribute extends Attribute

설명

CLSCompliantAttribute 특성을 프로그램 요소(어셈블리, 모듈, 클래스, 구조체, 열거형, 생성자, 메서드, 속성, 필드, 이벤트, 인터페이스, 대리자, 매개 변수 및 반환 값)에 적용할 수 있습니다. 그러나 CLS 규격의 개념은 어셈블리, 모듈, 형식 및 형식의 멤버에만 적용되면 멤버 시그니처의 부분에는 적용되지 않습니다. 따라서 매개 변수 또는 반환 값 프로그램 요소에 적용되면 CLSCompliantAttribute는 무시됩니다.

프로그램 요소에 적용되는 CLSCompliantAttribute가 없을 경우 기본값은 다음과 같습니다.

  • 어셈블리는 CLS 규격이 아닙니다.

  • 형식은 해당 포함 형식 또는 어셈블리가 CLS 규격인 경우에만 CLS 규격입니다.

  • 형식의 멤버는 형식이 CLS 규격인 경우에만 CLS 규격입니다.

어셈블리가 CLS 규격으로 표시된 경우 해당 어셈블리에서 CLS 규격이 아닌 공개 노출 형식의 CLSCompliantAttribute에는 false 인수를 사용하여 표시해야 합니다. 마찬가지로, 클래스가 CLS 규격으로 표시된 경우에는 CLS 규격이 아닌 모든 멤버를 개별적으로 표시해야 합니다. 모든 비규격 멤버에서는 다른 CLS 규격을 제공해야 합니다.

어셈블리나 모듈에 적용되는 특성은 C# using(Visual Basic의 Imports) 절 뒤, 코드 앞에 있어야 합니다.

특성 사용에 대한 자세한 내용은 특성을 사용하여 메타데이터 확장을 참조하십시오.

참고

현재 Microsoft Visual Basic 컴파일러에서는 CLS 규격의 경고를 생성하지 않지만 앞으로 릴리스되는 해당 컴파일러에서는 경고를 발생시킵니다.

예제

다음 예제에서는 CLSCompliantAttribute를 전체 어셈블리에 적용합니다.

using System;
    [assembly:CLSCompliant(true)]

다음 선언에서는 UInt32 형식이 CLS에 지정되어 있지 않기 때문에 CLS 규격 경고가 생성됩니다.

 public int SetValue(UInt32 value);

이 선언이 CLSCompliantAttribute로 표시되는 경우에는 컴파일러 경고나 오류가 생성되지 않습니다.

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

상속 계층 구조

System.Object
   System.Attribute
    System.CLSCompliantAttribute

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

CLSCompliantAttribute 멤버
System 네임스페이스
Attribute 클래스

기타 리소스

공용 언어 사양
특성을 사용하여 메타데이터 확장