动态方法调用

时间:2011-02-28 17:27:13

标签: c# dynamic methods

我有两个简单的类:

public class A
{
    public void DoSomething();
}

public class Listener
{
    public void OnDoSomethingCalled();
}

我希望每次调用A.DoSomething()时自动调用Listener.OnDoSomethingCalled()。我想在不更改类A的情况下执行此操作。我不想在A中添加委托并将侦听器附加到该委托。想象一下我没有A类源代码的场景。

我不能在这里使用装饰模式,因为我无法修改调用A.DoSomething()的代码。我读了一些关于Reflection.Emit或DynamicMethod的内容,以便在运行时动态更改或定义方法。可以在这里应用吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试像PostSharp之类的面向方面编程,我认为应该处理这个问题(它会重写CIL)。

相关问题