CA1014: CLSCompliantAttribute로 어셈블리 표시
TypeName |
MarkAssembliesWithClsCompliant |
CheckId |
CA1014 |
범주 |
Microsoft.Design |
변경 수준 |
주요 변경 아님 |
원인
어셈블리에 System.CLSCompliantAttribute 특성이 적용되어 있지 않습니다.
규칙 설명
CLS(공용 언어 사양)는 어셈블리가 여러 프로그래밍 언어에 사용될 경우 준수해야 하는 명명 제한, 데이터 형식 및 규칙을 정의합니다. 모든 어셈블리에는 CLSCompliantAttribute를 통해 CLS 규격을 명시적으로 나타내는 것이 좋습니다. 어셈블리에 이 특성이 없으면 해당 어셈블리가 규격을 따르지 않습니다.
CLS 규격 어셈블리에는 CLS 규격을 따르지 않는 형식이나 형식 멤버가 포함될 수 있습니다.
위반 문제를 해결하는 방법
이 규칙 위반 문제를 해결하려면 어셈블리에 해당 특성을 추가합니다. 전체 어셈블리를 비규격으로 표시하는 대신 규격을 따르지 않는 형식이나 형식 멤버를 확인하고 이들 요소를 비규격으로 표시해야 합니다. 가능하다면 많은 사용자가 어셈블리의 모든 기능에 액세스할 수 있도록 비규격 멤버에 대해 CLS 규격 대체 멤버를 제공해야 합니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다. 어셈블리가 규격을 따르지 않도록 하려면 해당 특성을 적용하고 그 값을 false로 설정합니다.
예제
다음 예제에서는 System.CLSCompliantAttribute 특성을 적용하여 CLS 규격을 선언하는 어셈블리를 보여 줍니다.
Imports System
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace
using System;
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
using namespace System;
[assembly:CLSCompliant(true)];
namespace DesignLibrary {}