2009-03-12 2 views
2

클래스 라이브러리 어셈블리와 테스트 코드가 있습니다. 테스트 코드는 클래스의 내부를 들여다 봐야하기 때문에 어셈블리의 일부가되어야하며 자체적으로 실행되도록하고 싶지 않기 때문에 public이 있어야 다른 어셈블리가 그것을 호출하십시오. 이렇게하면 주 어셈블리에 있어서는 안되는 일부 코드가 고정됩니다..NET 어셈블리에 대한 권한있는 액세스를 다른 어셈블리 하나에만 부여하는 방법이 있습니까?

내가 원하는 것은 모든 테스트 코드를 다른 어셈블리에 배치하고 어떻게 든 클래스 내부에 액세스 할 수있는 권한을 부여하는 것입니다. 디버그/개인 빌드의 일부로서, 최종 제품의 일부가 될 필요는 없습니다.

그럴 수 있습니까?

+0

예, 아마도 제가 잘못 알고 있습니다. – BCS

+0

아니요 - 그 때문에 Joels의 게시물에서 언급 한 것처럼 InternalsVisibleTo 속성이 있습니다. –

답변

9

액세스 한정자를 자유롭게 사용하고 InternalsVisibleTo 특성을 어셈블리에 추가하십시오.

+0

지금 확인하십시오. 그 이름이 오도하지 않는다면, 그것은 내가 필요한 것입니다. – BCS

+0

그것은 까다 롭습니다 - 당신은 당신의 다른 집회에 서명해야합니다 - 그러나 그것은 효과가 있습니다. –

+0

첫 번째 어셈블리에 서명 된 경우에만 다른 어셈블리에 서명하면됩니다. 그것은 "둘 다 또는 둘 다"시나리오입니다. –