2009-07-06 3 views
0

가능한 중복 :
Custom Compiler Warnings[폐기]는 .NET 에뮬레이트 속성

중복 : Custom Compiler Warnings

내가 .NET에 대한 내 자신의 속성을 작성하는 새로운 해요,하지만 싶습니다 System.ObsoleteAttribute 특성과 비슷하게 동작하는 클래스를 작성하십시오. 클래스/멤버가 속성으로 태그 付け되어 있으면 해당 클래스/멤버의 호출자가 경고를 생성합니다.

구체적으로 [Unimplemented] 특성을 만들고 싶습니다. 실제로는 NotImplementedExceptions를 던지기보다는 개발 중에 사용하고 싶습니다.

IDE에서 실시간으로 평가하는 방법을 알고 [Unimplemented] 항목이 호출되면 경고를 생성합니까?

답변

1

속성은 실제로 아무것도하지 않으며, 기본적으로 메소드 (또는 클래스 또는 기타)에 메타 데이터로 태그를 지정합니다. Obsolete 속성을 볼 때 수행 할 작업을 결정하는 처리를 수행하는 것은 IDE/컴파일러입니다.

Visual Studio에서 이와 같이 다른 특성을 사용하려면 Visual Studio 용 사용자 지정 플러그 인을 작성해야합니다.

1

아니요, ObsoleteAttribute은 CLI 호환 컴파일러에서 아주 특별한 방법으로 처리되므로 동작을 모방 할 방법이 없습니다. #warning 또는 #error (this 참조)이 작업을 수행 할 수 있습니다.

+0

이 아니라 그 실망하여 //todo: 의견 (심지어 NotImplementedException들)의 모든 쇼 (링크)가 '도도 탐색기'라는 ReSharper에서의 멋진 기능이있다; 나는 그것을 부서 표준으로 만들고 그것을 시행하기 위해 FxCop 규칙을 쓰기를 바랐다. – STW

0

이유를 묻고 싶습니다. 구현되지 않은 기능이 있지만 NotImplementedExceptions을 던지 길 원치 않는 것 같습니다. 어쩌면 비공개 코드 블록을 // todo :(끝내지 않았다는 것을 상기시키기위한) 주석으로 만들지 않겠습니까? 여담으로

,

+0

NotImplementedException은 런타임 중에 히트하거나 b : 체크인하기 전에 검색하는 경우에만 유용합니다. ObsoleteAttribute는 빈 메서드가 있음을보다 적극적으로 알려줍니다. 아마도 http://stackoverflow.com/questions/410719/notimplementedexception-are-they-kidding-me/410800#410800에서 제안을 취하고 제공된 FxCop 규칙 – STW

+0

을 구현하고 [Obsolete] isn ' 구현되지 않은 클래스/멤버를위한 것입니다. 우리는 그것을 의도 된대로 사용하기 때문에 "실제 구현되지 않은 객체"를 "구현되지 않은 객체"에서 필터링하는 것은 좋은 해결책이되지 못합니다 – STW