다음을 통해 공유


CA1506: 클래스 결합을 지나치게 많이 사용하지 마십시오.

속성
규칙 ID CA1506
제목 클래스를 지나치게 많이 결합하지 마세요.
범주 유지 관리
수정 사항이 호환성을 깨뜨리는지 여부 또는 무중단인지 여부 주요 변경
기본 임계값 형식: 95개의 기타 기호: 40
.NET 10에서 기본적으로 사용하도록 설정 아니요
적용 가능한 언어 C# 및 Visual Basic

원인

형식, 메서드, 필드, 속성 또는 이벤트는 다른 많은 형식과 결합됩니다. 컴파일러 생성 형식은 이 메트릭에서 제외됩니다.

규칙 설명

이 규칙은 형식, 메서드, 필드, 속성 또는 이벤트에 포함된 고유 형식 참조 수를 계산하여 클래스 결합을 측정합니다. 기본 결합 임계값은 형식의 경우 95, 다른 기호 종류의 경우 40이며 임계값을 구성할 수 있습니다.

클래스 결합이 높은 형식, 메서드 및 기타 기호는 유지 관리하기 어려울 수 있습니다. 낮은 결합과 높은 응집력을 나타내는 형식, 메서드 및 기타 기호를 사용하는 것이 좋습니다.

위반 문제를 해결하는 방법

이 위반 문제를 해결하려면 형식이나 메서드를 다시 설계하여 결합되는 형식의 수를 줄입니다.

경고를 표시하지 않는 경우

형식 또는 메서드가 다른 형식에 대한 많은 종속성에도 불구하고 유지 관리 가능한 것으로 간주되는 경우 이 경고를 표시하지 않을 수 있습니다.

주의

다음이 모두 적용되는 경우 이 규칙에서 가양성 경고가 표시될 수 있습니다.

  • Visual Studio 2022 버전 17.5 이상을 이전 버전의 .NET SDK(.NET 6 이하)와 함께 사용하고 있습니다.
  • .NET 6 SDK 분석기 또는 이전 버전의 분석기 패키지(예: Microsoft.CodeAnalysis.FxCopAnalyzers)를 사용하고 있습니다.

거짓 양성은 C# 컴파일러의 호환성을 깨뜨리는 변경으로 인해 발생합니다. 가양성 경고에 대한 수정 사항이 포함된 최신 분석기를 사용하는 것이 좋습니다. Microsoft.CodeAnalysis.NetAnalyzers 버전 7.0.0-preview1.22464.1 이상으로 업그레이드하거나 .NET 7 SDK에서 분석기를 사용하세요.

경고 표시 안 함

단일 위반을 억제하려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 비활성화한 후 다시 활성화하십시오.

#pragma warning disable CA1506
// The code that's violating the rule is on this line.
#pragma warning restore CA1506

파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않으려면 구성 파일에서 none의 심각도를 설정합니다.

[*.{cs,vb}]
dotnet_diagnostic.CA1506.severity = none

자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.

임계값 구성

이 규칙이 실행되는 임계값과 분석할 기호 종류를 구성할 수 있습니다. 허용되는 기호 종류는 다음과 같습니다.

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. CodeMetricsConfig.txt 텍스트 파일을 만듭니다.

  2. 텍스트 파일에 원하는 임계값을 다음 형식으로 추가합니다.

    CA1506(Method): 60
    CA1506(Type): 120
    

    이 예제에서는 메서드에 60개 이상의 고유 형식 참조가 있거나 형식에 120개 이상의 고유 형식 참조가 있는 경우 규칙이 실행되도록 구성됩니다. 이 구성 파일을 사용하면 규칙이 클래스 결합이 기본 임계값(40)보다 큰 필드, 속성 및 이벤트에 계속 플래그를 지정합니다.

  3. 프로젝트 파일에서 구성 파일의 빌드 동작을 AdditionalFiles로 표시합니다. 다음은 그 예입니다.

    <ItemGroup>
      <AdditionalFiles Include="CodeMetricsConfig.txt" />
    </ItemGroup>
    

참고하기