2
레거시 코드가 있으며 응용 프로그램 호출 'Execute'메서드를 알고 싶습니다.정적 메서드에 대한 인터셉터
레거시 코드 구조 :
public class CmsJob
{
public static string Execute()
{
}
}
그 후, 또는 정적 메소드 실행 전에 추가 동작을 구현 IInterceptor 또는 PostSharp.dll 사용할 수있다?
저는 그렇게 생각하지 않습니다. 정적 메서드는 본질적으로 모의하기가 매우 어렵습니다. 일반적으로 인터셉터는 다형성 + 프록시를 기반으로합니다. 정적 인 기능은 사용할 수 없습니다. 그러한 생각을하려면 아마 가짜 dll을 가짜 Execute 메소드로 만들어야한다.이 메소드는 aganist를 dll에 연결하고 인터셉터 로직을 실행 한 다음 Execute를 호출한다. 물론 위의 dll과 프로젝트를 연결해야합니다. – user2184057
Thanks @ user2184057. 내 가정을 확인했습니다 – Pavel
소스를 수정하고 다시 컴파일 할 수 있습니까? 바이너리를 수정할 수 있습니까? 이 메서드가 포함 된 어셈블리에 서명되어 있습니까? –