2
TypeBuilder를 사용하여 파생 클래스의 기본 클래스에서 전용 메서드를 호출하는 방법을 찾고 있습니다. 리플렉션을 통해이 메소드를 호출하는 것만으로도이 작업을 수행 할 수 있지만 typebuilder로 생성 된 패스 스루 메소드를 호출하면 MethodAccessException이 발생합니다. 누구든지이 문제를 해결할 방법을 찾았습니까?BaseClass에서 Reflection.Emit을 사용하여 파생 클래스에서 private 메서드 호출
이 아이디어는 즉시 재 설계 할 필요없이 단위 테스트에서 레거시 코드를 신속하게 가져올 필요가 있음을 나타냅니다. 나는이 기능이 캡슐화를 깨뜨리고 그것을 문제로 언급하지 않는다는 것을 잘 알고 있으며, 가능하다면 나는 단지 궁금하다. – dSquared
@dSquared : 테스트 용이라면 (기존 코드가 사용자가 제어 할 수 있음) 필자는 내부적으로 (보통 개인이 될 것이라는 표시가있는) 메소드를 만든 다음 'InternalsVisibleTo'를 사용하여 테스트 어셈블리에서. –
그 방법을 보호 (테스트 클래스에서 파생 및 호출)하는 것은 내가 자주 사용하는 두 가지 솔루션이며 매우 잘 작동하는 것 같습니다. 나는 단지 테스트를 수용하기 위해 액세스 변경자를 변경하는 방법을 찾고 있었다고 생각합니다. – dSquared