2010-07-26 4 views
16

Visual Studio 2010을 사용하고 있으며 코드 생성 통계에서 생성 된 서비스 참조 코드를 제외하고 싶습니다.코드 적용 범위 데이터에서 생성 된 코드를 무시하는 방법

2010 년 이전에 DebuggerNonUserCode 및 DebuggerHidden 특성을 사용하여 언급 한 article가 있습니다. 나는 광고 한대로 작동하는 이것을 시도했다. DebuggerNonUserCode는 클래스 수준에서 설정되지만 생성 된 각 서비스 참조 코드 파일에서 50 개 이상의 클래스가 생성되므로 이는 매력적인 옵션이 아닙니다.

다른 해결책이 있습니까?

+0

고마워, 그게 내 문제를 해결했다. –

답변

2

DebuggerNonUserCode 속성을 사용하여 부분 클래스를 생성하는 코드 생성기를 만들 수 있습니다.

+0

불행히도 코드 생성기를 생성하고 테스트하는 등의 비용은 기존의 생성 된 코드에 수동으로 코드를 추가하는 비용으로 대체됩니다. 아이디어를 가져 주셔서 감사합니다. – btlog

3

Reference.cs에서 [System.Diagnostics.DebuggerStepThroughAttribute()]과 같은 기존 속성을 찾아서 [System.Diagnostics.DebuggerStepThroughAttribute()][System.Diagnostics.DebuggerNonUserCode()]으로 바꾸고 바꿀 수 있습니다.
주요 단점은 참조를 업데이트 할 때마다이 작업을 다시해야한다는 것입니다.

MS가 왜 코드 참조 도구를 서비스 참조 생성 코드를 건너 뛰는 정도로 똑똑하게 만들지 않는지 이해할 수 없습니다.

3

System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage은 클래스의 맨 위에 사용할 수 있습니다. 이는 코드를 다시 생성 할 때마다 다시해야하기 때문에 좋지 않은 옵션입니다. 어쩌면 Microsoft는 서비스 참조, 엔티티 프레임 워크 유형 등을 만들 때 자동으로이 작업을 수행 할 수 있습니다.

13

생성 된 클래스는 부분적입니다. 동일한 네임 스페이스 및 클래스 선언을 사용하여 프로젝트에서 새 클래스를 만드는 경우 부분 클래스에 [ExcludeFromCodeCoverage] 특성을 추가 할 수 있습니다. 그렇게하면 참조를 새로 고칠 때마다 Reference.cs 파일을 다시 편집 할 필요가 없습니다.