在.NET中运行时交换方法实现?

时间:2009-07-14 11:05:47

标签: .net mocking swap

如何在运行时将方法的实现从return false;更改为return true;?我无法控制方法实现,因为它附带了第三方库。任何解决方法表示赞赏。再说一遍:我既不控制方法本身,也不控制它的来电者。

5 个答案:

答案 0 :(得分:2)

尝试使用MethodRental.SwapMethodBody方法。

答案 1 :(得分:0)

您可以拦截该方法的调用者并返回true而不是调用它。也许你可以发布更多细节。

答案 2 :(得分:0)

请提供有关您的问题的更多信息。如果您只想切换布尔结果,则需要使用简单的bool result = !MyMethod();;)

答案 3 :(得分:-1)

多一点信息会有所帮助。你可以包装库并让其他人调用你的包装器吗?这也可能是一个很棒的TDD途径。您是否可以实现自己的接口?再次,DI可以允许您交换实现。

答案 4 :(得分:-1)

子类和覆盖。如果您不能子类化,请使用Decorator模式。