【发布时间】:2013-06-12 21:05:37
【问题描述】:
我有一个很奇怪的问题要做。由于反思,我将一个类指向我的模拟类而不是“真实”类。 (测试目的)。我想知道是否有任何方法可以在模拟中捕获任何方法调用,并根据调用正在等待的内容返回我想要的任何内容。
某种意义上的:
一个对象调用另一个对象来执行 X() 并期望一个布尔值。
由于我已经通过反射改变了它指向的对象,我希望我的模拟在调用 X() 时返回“true”(尽管它本身没有实现 X())。
换句话说,不是触发“MethodNotFoundException”,而是接收所有内容并相应地执行一些逻辑。
【问题讨论】:
-
您可以研究像 Ninject 这样的依赖注入 (DI) 框架来解决此类问题。
-
你不能为 MethodNotFoundException 做一个捕获吗?您希望它在某些情况下会发生,您可以在其中包含您的自定义逻辑。
-
我认为您在这里的语言有误...
-
(你可以也许用
System.Dynamic做点什么,但这既不简单也不直接。) -
@millimoose Method_missing 从那个链接真的很有帮助。只需在 Google 中搜索 C# 版本,我就知道了:)
标签: c#