有没有办法做这样的事情:在 Groovy 中是否有办法装饰每个类以添加跟踪?但在 C# 中。由于 C# 不支持 metaClass,我不知道该怎么做。如果我能让这个解决方案发挥作用,那么我将使用反射遍历每个类并使其实现接口。
谢谢,
乔
有没有办法做这样的事情:在 Groovy 中是否有办法装饰每个类以添加跟踪?但在 C# 中。由于 C# 不支持 metaClass,我不知道该怎么做。如果我能让这个解决方案发挥作用,那么我将使用反射遍历每个类并使其实现接口。
谢谢,
乔
是的,您可以使用动态代理。
你为什么不看看Castle DynamicProxy?http://www.castleproject.org/projects/dynamicproxy/
或者 PostSharp,如果您想以更清洁的方式利用 AOP:
http://www.sharpcrafters.com/postsharp/documentation
OP在一些评论中说:
啊,我实际上是在使用 PostSharp 来输出调用了哪些方法以及何时调用。我试图避免做的是为我的代码中的每个类添加一个属性。所以我想我可以像这样创建一个接口: [MyAttribute] public interface IDebug {} 并让我的类在运行时实现这个接口。
PostSharp 支持汇编级方面:[assembly:YourAspect]
. 稍后,在您的方面,您可以检查调用了哪个方法以及属于哪个对象,并根据它来完成整个工作。