当前位置:  开发笔记 > 编程语言 > 正文

在.NET中有一种方法可以在调用另一个方法之后但在输入之前自动调用一个方法

如何解决《在.NET中有一种方法可以在调用另一个方法之后但在输入之前自动调用一个方法》经验,为你挑选了1个好方法。

我正在寻找的是一种在调用另一个方法之后但在输入之前调用方法的方法.例:

public class Test {

  public void Tracer ( ... )
  {
  }

  public int SomeFunction( string str )
  {
    return 0;
  }

  public void TestFun()
  {
    SomeFunction( "" );
  }

}

在上面的例子中,我希望在TestFun()调用SomeFunction()之后但在输入SomeFunction()之前调用Tracer().我还想在SomeFunction()上获得反射数据.


我在每个人的答案中发现了一些有趣的东西.这个问题最佳答案是使用Castle的DynamicProxy; 但是,这不是我将要用来解决我的问题,因为它需要在我的项目中添加一个库.我只有一些方法需要"跟踪",因此我选择采用与动态代理实现方式混合的修改后的"核心"方法.我在下面回答我自己的问题时解释了这一点.

就像我要注意的那样,我将研究一些其他应用程序的AOP和ContextBoundObject类.



1> Ben Hoffstei..:

您可以使用动态代理(例如Castle的DynamicProxy)来拦截调用,运行您希望的任何代码,然后根据您的需要调用您的方法.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有