2016-06-04 5 views
1

리플렉션을 통해서만 할당되거나 사용되는 필드가있는 두 개의 클래스가 있습니다.Suppress CS0169 및 CS0649

CS0169: The field [...] is never used 
CS0649: Field [...] is never assigned to, and will always have its default value 0 

해결책이 될 것이다 이러한 모든 클래스에 SuppressMessageAttribute를 사용하는 것이 아니라 관련 클래스가 이미 사용자 지정 특성을 가지고이, 부정한 것 같다 결과, 필드는 다음과 같은 경고로 이어집니다.

[KeepMyFields] 
class SomeClass 
{ 
    int usedField; 
} 

class KeepMyFieldsAttribute : System.Diagnostics.CodeAnalysis.SuppressMessageAttribute 
{ 
    // [...] 
} 

그러나, SuppressMessageAttribute가 밀봉 :

나는 이런 식으로 뭔가를 원합니다. 각 관련 클래스에 코드 스 니펫을 추가하는 것 외에 다른 옵션에는 어떤 것이 있습니까? 맞춤 MSBuild 작업이 적합할까요? 아니면 더 간단한 방법이 있습니까? 당신이 "깨끗한"솔루션을 찾고 있다면

+0

여기를 참고하십시오 : http://stackoverflow.com/a/3821035/5311735 – Evk

+0

제안 된 해결책은 각 클래스에'#pragma'를 추가하는 것입니다. 이 방법은 깨끗한 것처럼 보이지 않으며 모든 필드를 속성으로 변환하지도 않습니다. –

답변

1

, 당신은 전체 프로젝트에서이 유형의 모든 경고를 억제 프로젝트에 옵션을 구축 할 수 있습니다 : 물론 enter image description here 이뿐만 아니라 다른 클래스에 대한 경고 (숨길를하는 당신이 아마 원하지 않음), 문제가되는 모든 클래스를 하나의 별도 프로젝트로 옮기고이 설정을 적용 할 수 있습니다.