AOP框架可以满足你的要求,我前段时间找过C#下的AOP框架,没有找到成熟的代码。你可以了解一下AOP原理,然后尝试使用C#实现。
楼上说的有道理,可以参考Spring.Net,即.Net下的AOP框架,这个比较成熟,是从Java迁移过来的
很有意思的问题
看下面的思路行不行:
class A{
public object CallFunction(int fun, List<object> params){
object return_value;
switch(fun){
case 1:
return_value=fun1(params);
break;
case 2:
return_value=fun2(params);
break;
......
}
WriteFile(return_value);
}
object fun1( List<object> params){
return 1;
}
object fun2( List<object> params){
return 2;
}
}
调用 new A().CallFunction(1);
呵呵这样好像是有点麻烦,像参数传递这些都没有直接调用函数那么方便了。
简单一点的方法,用事件,在类的每个方法内部,先执行MethodInvoking事件,返回值之前再直行MethodInvoked事件。
复杂一些的方法,用自定义特性。
更通用的方法,用AOP