如何在运行时将方法的实现从return false;
更改为return true;
?我无法控制方法实现,因为它附带了第三方库。任何解决方法表示赞赏。再说一遍:我既不控制方法本身,也不控制它的来电者。
答案 0 :(得分:2)
尝试使用MethodRental.SwapMethodBody
方法。
答案 1 :(得分:0)
您可以拦截该方法的调用者并返回true而不是调用它。也许你可以发布更多细节。
答案 2 :(得分:0)
请提供有关您的问题的更多信息。如果您只想切换布尔结果,则需要使用简单的bool result = !MyMethod();
;)
答案 3 :(得分:-1)
多一点信息会有所帮助。你可以包装库并让其他人调用你的包装器吗?这也可能是一个很棒的TDD途径。您是否可以实现自己的接口?再次,DI可以允许您交换实现。
答案 4 :(得分:-1)
子类和覆盖。如果您不能子类化,请使用Decorator模式。