我需要拦截方法调用...请建议一个现成的解决方案。 有必要阻止对某些方法的访问(因此调用它们会产生异常)
答案 0 :(得分:6)
AOP提供您正在寻找的功能。对于完整的AOP解决方案,您可以使用PostSharp。
由于您只是在寻找拦截方法调用的方法,因此您只需要一个AOP子集。所以提供接口拦截的任何IoC container也是合适的。据我所知Spring.NET,Unity和Castle Windsor提供界面拦截。
编辑:如果您需要快速拦截并拥有现有代码库,我建议使用PostSharp。为了使用一些IoC容器,您可能需要修改大量代码。如果你有一个新项目考虑IoC。使用IoC设计应用程序有很多积极的影响。
答案 1 :(得分:2)
面向方面编程有助于完成此类任务。有很多可以使用的框架,我使用的是Spring.Net,非常好。
答案 2 :(得分:2)
您的现成解决方案是Microsoft Enterprise Library的一部分。
答案 3 :(得分:1)
对于AOP可以建议这一个PostSharp
答案 4 :(得分:1)
您可以使用Castle DynamicProxy
甚至是内置的RealProxy
课程(要求您的班级继承MarshalByRefObject
)