2009-07-14 3 views
0

런타임시 메서드 구현을 return false;에서 return true;으로 변경할 수 있습니까? 타사 라이브러리와 함께 제공되므로 메서드 구현을 제어 할 수 없습니다. 모든 해결 방법을 주시면 감사하겠습니다. 다시 : 메소드 자체도 호출자도 제어하지 않습니다..NET에서 런타임시 스왑 메서드 구현?

+0

도서관의 라이선스 코드를 피하려고합니까? – SLaks

+0

약간 비 윤리적 인 것으로 간주 되나요? –

+0

나는 그것을 결코 고려하지 않을 것이다! – usr

답변

2

MethodRental.SwapMethodBody 메서드를 사용해보십시오.

+0

이 방법은 어떻게 사용됩니까? 나는 바이너리 il을 생성해야합니까? – usr

+0

연결된 페이지에 따르면 동적 모듈에서만 작동합니다. – Giorgi

+0

@Giorgi : 네 말이 맞아. 나는 그것을 알아 차리지 못했다. – SLaks

-1

조금 더 많은 정보가 도움이 될 것입니다. 도서관을 포장하고 다른 사람들에게 포장지를 부칠 수 있습니까? 이것은 훌륭한 TDD 길일 수도 있습니다. 자신이 구현할 수있는 인터페이스가 있습니까? 다시, DI를 사용하면 구현을 스왑 아웃 할 수 있습니다.

+0

정적 메서드입니다. – usr

0

해당 메소드의 호출자를 인터셉트하여 호출하는 대신 true를 리턴 할 수 있습니다. 더 자세한 정보를 게시 할 수 있습니다.

+0

아니, 그는 할 수 없다. – SLaks

+0

SLaks 질문을 읽으십시오, 나는 그 방법의 발신자를 가로 챌 수있는 반사를 사용합니다. 나는 그 질문을 읽었다. – user134706

+0

어떻게? – SLaks

0

문제에 대한 추가 정보를 제공해주십시오. 부울 결과 만 전환하려는 경우 간단한 bool result = !MyMethod();이 충분합니다.)

-1

하위 클래스 및 재정의. 하위 클래스가 아닌 경우 Decorator 패턴을 사용하십시오.

+0

그는 아무 것도 할 수 없습니다. 정적 방법입니다 (첫 번째 대답에 대한 첫 번째 주석 참조). 그리고 그는 호출 사이트를 제어하지 않습니다. – SLaks