CA1041: ObsoleteAttribute 메시지를 제공하십시오.
속성 | 값 |
---|---|
규칙 ID | CA1041 |
제목 | ObsoleteAttribute 메시지를 제공하세요. |
범주 | 디자인 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
.NET 9에서 기본적으로 사용 | 제안 사항 |
원인
형식이나 멤버는 System.ObsoleteAttribute.Message 속성을 지정하지 않은 System.ObsoleteAttribute 특성을 사용하여 표시됩니다.
기본적으로 이 규칙은 외부에 표시되는 형식과 멤버만 확인하지만 이는 구성 가능합니다.
규칙 설명
ObsoleteAttribute는 사용되지 않는 라이브러리 형식 및 멤버를 표시하는 데 사용됩니다. 라이브러리 소비자는 사용되지 않는 것으로 표시된 형식이나 멤버를 사용해서는 안 됩니다. 이는 지원되지 않으며 나중 버전의 라이브러리에서 제거될 수 있기 때문입니다. ObsoleteAttribute를 사용하여 표시된 형식 또는 멤버를 컴파일하면 특성의 Message 속성이 표시됩니다. 사용되지 않는 형식 또는 멤버에 대한 정보가 사용자에게 제공됩니다. 해당 정보에는 일반적으로 사용되지 않는 형식 또는 사용되지 않는 멤버가 라이브러리 디자이너에서 지원되는 기간 및 사용하려는 기본 설정 대체가 포함됩니다.
위반 문제를 해결하는 방법
해당 규칙 위반 문제를 해결하려면 message
매개 변수를 ObsoleteAttribute 생성자에 추가합니다.
경고를 표시하지 않는 경우
Message 속성이 사용되지 않는 형식 또는 사용되지 않는 멤버에 대한 중요한 정보를 제공하기 때문에 해당 규칙에서 경고를 표시하지 마세요.
분석할 코드 구성
다음 옵션을 사용하여 이 규칙이 실행될 코드베이스 부분을 구성합니다.
이 규칙, 적용되는 모든 규칙 또는 적용되는 이 범주(디자인)의 모든 규칙에 대해 이 옵션을 구성할 수 있습니다. 자세한 내용은 코드 품질 규칙 구성 옵션을 참조하세요.
특정 API 화면 포함
접근성을 기반으로 이 규칙을 실행할 코드베이스의 파트를 구성할 수 있습니다. 예를 들어 규칙이 퍼블릭이 아닌 API 표면에서만 실행되도록 지정하려면 프로젝트의 .editorconfig 파일에 다음 키-값 쌍을 추가합니다.
dotnet_code_quality.CAXXXX.api_surface = private, internal
예시
다음 예제에서는 ObsoleteAttribute가 올바르게 선언된 사용되지 않는 멤버를 보여 줍니다.
[ObsoleteAttribute("This property is obsolete and will be removed in a " +
"future version. Use the FullName property instead.", false)]
public string Name
{
get => "Name";
}
Imports System
Namespace ca1041
Public Class ObsoleteAttributeOnMember
<ObsoleteAttribute("This property is obsolete and will " &
"be removed in a future version. Use the FirstName " &
"and LastName properties instead.", False)>
ReadOnly Property Name As String
Get
Return "Name"
End Get
End Property
ReadOnly Property FirstName As String
Get
Return "FirstName"
End Get
End Property
ReadOnly Property LastName As String
Get
Return "LastName"
End Get
End Property
End Class
End Namespace
참고 항목
.NET