2011-01-19 2 views
2

Windows Forms 컨트롤 모음을 구입했습니다. 그들의 기능을 확장하기 위해 기지에서 상속하여 자신의 등가물을 만들었습니다. 기본 컨트롤 (구입 한)의 사용을 금지하고 프로그래머가 우리를 사용하도록하는 방법이 있습니까?누군가가 외부 클래스 라이브러리의 일부 클래스를 사용하는 경우 컴파일 오류를보고합니다.

기본 컨트롤 (소스에 액세스 할 수 없음)을 사용하는 경우 컴파일러에서 오류 또는 경고를보고하고 내 클래스 (기본을 상속 함)를 사용하도록 제안합니다.

아이디어가 있으십니까?

+0

"동급 제품"에 대해 별도의 어셈블리를 만듭니다. 그런 다음이 어셈블리를 "주 프로젝트"에서 참조하고 "주 프로젝트"에서 타사 라이브러리에 대한 참조를 제거하십시오. 당신은 컴파일 오류를 얻을 것이다 –

+0

@Khurram - 나는 그런 식으로 생각하고 있었다. 그러나 누군가 제 3 자 라이브러리를 주 프로젝트에 다시 추가하는 것을 멈추게하는 것은 아무것도 없다. – ChrisF

+0

타사 라이브러리가 포함되어야합니다. 우리는 40 개의 컨트롤에서 10 개만 확장했습니다. 이미 Khurram Aziz의 제안에 따라 생각했습니다. – stanik

답변

3

write a custom FXCop rule이 것을 확인하면이를 빌드 프로세스에 통합 할 수 있습니다. VS2010을 사용하면 fxcop을 선택할 때마다 모든 빌드의 일부가 될 수 있습니다. 또는 CI 빌드 또는 야간 빌드의 일부로 실행할 수도 있습니다.

+0

당신은 내 앞에서 "새로운 세상"을 열었습니다. 나는 FxCop sdk를 가지고 놀아야한다. 그러나 당신이 제공 한 링크를 클릭하고 예제를 보았을 때 이것이 아마도 내가 무엇을 찾고 있는지를 보았다. 고마워 ... (나는 이미 PostBuid에 내 "컴파일러"를 작성하는 데 가까웠다. :) – stanik

0

포스트 빌드 이벤트를 통해이를 수행 할 수 있습니다. 솔루션의 각 프로젝트를 여는 작은 exe 파일을 만듭니다. 어셈블리의 각 유형을 읽고 틀린 유형의 인스턴스가 생성되지 않도록합니다.