2009-11-30 81 views
1

这可能已经在这里回答过了,我只是没有寻找正确的东西。如果是的话,我表示歉意。C#钩入方法开始和结束

我想要做的是在类的任何方法被调用并完成执行时自动执行一个方法。

任何想法我可以做到这一点?我看着反射,但不知道这是否会奏效。

任何帮助表示赞赏:-)

+5

我回答了这个很throughly这里:http://stackoverflow.com/questions/1331851/dynamic-interception-of-calls-in-net – 2009-11-30 12:33:40

回答

1

如果您在编译过程中可以做某些事情,PostSharp或Mono.Cecil是在构建时进行AOP的好工具。

否则go +1 Sam's answer

1

您可以使用面向方面的编程框架,如PostSharp。

1

您可以使用回调。

void SomeMethod (delegate MyDelegate) 
{ 

// do some things 

MyDelegate(); // execute method referenced by delegate 
} 

您想要在SomeMethod完成时通过SomeMethod中的代理自动执行的方法。

+0

或部分方法。但他希望所有方法。这会变得单调乏味 – 2009-11-30 12:38:35

+0

@Ruben:是的,对于所有的方法它会得到多少... – 2009-11-30 13:22:48