[C#] ObsoleteAttribute 특성을 사용하여, 사용안하는 메소드 표시

728x90
반응형

 

 

 

 


 

 

들어가며

프로그램을 설계하고 코딩하는 과정에서, 각 어플리케이션의 요소 (클래스, 메소드, 구조체 등등) 를 변경하는 과정은 자주 발생하게 됩니다. 협업하는 과정에서 즉시 수정이 가능하면 좋지만, 시간을 두고 천천히 제외 해야 할 요소라면, 작업자 간의 자연스러운 공유 및 수정을 유도하는 것도 하나의 방법인데요.
꼭 제외에만 초점을 맞춘다기 보다는 Framework 의 변경, 추가 Method 생성 등도 이유가 될 수 있을 겁니다.

이때 사용하기 좋은 특성 중 에 하나가 [Obsolete] 입니다.

 

 

 

 

ObsoleteAttribute

더 이상 사용하지 않거나, 그럴 예정인 어플리케이션 요소를 표시하는데 사용되는 특성이며,

[Obsolete] 특성 (Attribute)을 붙여주는 방식으로 사용하게 됩니다.

 

 

 

 

 

기본 형식 
[Obsolete("사용안함", false)]
public bool TestMethods()
{
    return true;
}

위와 같이 Method 나, Class 등등 어플리케이션 요소 상단에 [Obsolete] 특성을 기재하는 방식으로 사용하게 됩니다. 

Obsolete 옵션으로 Message 와 IsError 컴파일 에러 여부를 선택할 수 있는 옵션으로 구성되어져 있으며, 

true 로 선택할 경우, 컴파일시 Error을 발생하게 됩니다. 

 

 

 

 

사용 예제

IsError false 일 경우, ~~~~ 표시로 사용자에게 경고만 되며, 컴파일은 정상적으로 진행됩니다. 

 

 

 

반면, IsError true 일 경우, ~~~~ 붉은 색으로 표시되며 컴파일시 에러를 발생하게 됩니다.

 

 

 

 

 

 Obsolete의 어플리케이션 요소 

[AttributeUsage(AttributeTargets.Class | 
        	AttributeTargets.Struct | 
                AttributeTargets.Enum | 
                AttributeTargets.Constructor | 
                AttributeTargets.Method | 
                AttributeTargets.Property | 
                AttributeTargets.Field | 
                AttributeTargets.Event | 
                AttributeTargets.Interface | 
                AttributeTargets.Delegate, Inherited = false)]

 

 

Obsolete 특성은 AttributeTargets Enum을 기준으로 동작하며, 

Assembly, Module, Parameter, ReturnValue, GenericParameter, All 을 제외한 요소에서 사용됩니다.

 

 

 

 

 적용대상 

 

 

 

 

참조

https://learn.microsoft.com/ko-kr/dotnet/api/system.obsoleteattribute?view=net-7.0

 

 

 

 

 

 

 

 

END


 

 

 

 

728x90