有没有办法做这样的事情:In Groovy Is there a way to decorate every class to add tracing?但在C#中。由于C#不支持metaClass,所以我不知道如何做到这一点。如果我可以使这个解决方案工作,那么我将使用反射迭代每个类并使其实现接口。
谢谢,
乔
答案 0 :(得分:2)
是的,您可以使用动态代理。
你为什么不看看Castle DynamicProxy? http://www.castleproject.org/projects/dynamicproxy/
或者PostSharp,如果你想以更清洁的方式利用AOP:
http://www.sharpcrafters.com/postsharp/documentation
啊,我实际上是在使用PostSharp来输出调用的方法和 什么时候。我要避免不得不做的是添加一个 属性到我的代码中的每个类。所以我想我可以创造 像这样的接口:[MyAttribute] public interface IDebug {} And 让我的类在运行时实现这个接口。
PostSharp支持汇编级方面:[assembly:YourAspect]
。稍后,在您的方面,您可以检查调用的方法和属于哪个对象,并根据具体情况完成整个工作。