[英]Is there a generic way to call another method whenever a method is called in C#
[英]C# : Is there a generic way to forward a method call to another object (with the same interface)?
有没有一种以通用方式实现此模式的方法?
调度程序对象和一堆工作者对象都源自同一接口。
任何对调度程序对象的方法调用都需要被调度(转发)到其中一个工作程序对象(带有所有参数)。
每个方法都需要发现自己的名称,在辅助对象中找到相应的方法,发现参数,然后进行调用。 如果可能,请不要使用变量参数机制。
有什么办法可以做到这一点? 反射? 代码生成?
它可能不是特别简单,但是却非常牢固-看一下Castle.DynamicProxy: http ://kozmic.pl/dynamic-proxy-tutorial/
一种可能的方法是使调度程序对象中的每个方法引发一个事件,并使所有辅助对象都订阅该事件。 (认为这称为“多播委托”模式)。
我想这可能不像您想要的那样“通用”,但是可以是一种实现大多数目标的更简单方法。
如果您想采用代码生成途径,则此t4文件的功能类似: http : //gist.github.com/647885
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.