fua*_*ark 5 c# wrapper
假设我想将一个函数包装在另一个函数中,以便向包装的函数添加一些功能。但我事先不知道返回类型或参数,因为这些方法是作为 Web 服务代理生成的。
我的第一个想法是使用Func<T>. 但有些函数可能会返回 void,在这种情况下Action<T>会更合适。
Func<T>
Action<T>
现在我的问题:是否有一个很好的通用方法来实现这一目标?我需要寻找一些模式吗?
RQD*_*QDQ 3
好吧,我想到了外观模式……这不是一种非常自动的做事方式,但它确实有效。基本上,您只需将另一个接口放在代理前面并调用它即可。然后您可以添加任何您想要的功能。
解决这个问题的另一种方法是使用面向方面的编程。我过去曾使用PostSharp (当它免费时)来执行此操作。您可以通过向方法/属性添加属性来执行诸如在函数中添加预处理/后处理之类的操作。然后,AOP 组件使用代码编织来重写您的 IL,以包含您引用的代码。请注意,这会显着减慢构建过程。
归档时间:
14 年,4 月 前
查看次数:
2398 次
最近记录: