속성 | 값 |
---|---|
규칙 ID | CA1515 |
제목 | 공용 형식을 내부로 만드는 것이 좋습니다. |
범주 | 유지 관리 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
.NET 9에서 기본적으로 사용 | 아니요 |
원인
실행 파일 어셈블리 내의 형식은 public으로 선언됩니다.
규칙 설명
클래스 라이브러리와 달리 애플리케이션의 API는 일반적으로 공개적으로 참조되지 않으므로 형식을 표시 internal
할 수 있습니다.
내부 형식은 공용이 아닌 API를 대상으로 하는 다양한 코드 분석기의 이점을 활용할 수 있습니다.
위반 문제를 해결하는 방법
형식을 .로 표시 internal
합니다.
예시
다음 코드 조각은 CA1515 위반을 보여줍니다.
// Inside a project with <OutputKind>Exe</OutputKind>.
public class Program
{
public static void Main(string[] args)
{
}
}
' Inside a project with <OutputKind>Exe</OutputKind>.
Public Class Program
Public Shared Sub Main(args As string())
End Sub
End Class
다음 코드 조각은 이 위반을 해결합니다.
// Inside a project with <OutputKind>Exe</OutputKind>.
internal class Program
{
public static void Main(string[] args)
{
}
}
' Inside a project with <OutputKind>Exe</OutputKind>.
Friend Class Program
Public Shared Sub Main(args As string())
End Sub
End Class
(프로젝트의 출력 형식에 대한 자세한 내용은 .NET 프로젝트 디자이너의 "출력 형식" 섹션을 참조하세요.)
경고를 표시하지 않는 경우
코드의 유지 관리가 중요하지 않은 경우 이 규칙의 위반을 표시하지 않아도 됩니다.
경고 표시 안 함
단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.
#pragma warning disable CA1515
// The code that's violating the rule is on this line.
#pragma warning restore CA1515
파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 none
에서 심각도를 으로 설정합니다.
[*.{cs,vb}]
dotnet_diagnostic.CA1515.severity = none
자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.
분석할 코드 구성
이 규칙을 적용할 출력 어셈블리 종류를 구성할 수 있습니다. 예를 들어 콘솔 애플리케이션이나 동적 연결 라이브러리(UI 앱이 아님)를 생성하는 코드에만 이 규칙을 적용하려면 프로젝트의 .editorconfig 파일에 다음 키-값 쌍을 추가합니다.
dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary
자세한 내용은 output_kind 참조하세요.
.NET