Динамический вызов метода - PullRequest
       18

Динамический вызов метода

0 голосов
/ 28 февраля 2011

У меня есть два простых класса:

public class A
{
    public void DoSomething();
}

public class Listener
{
    public void OnDoSomethingCalled();
}

Я хочу, чтобы Listener.OnDoSomethingCalled () вызывался автоматически каждый раз, когда вызывается A.DoSomething ().Я хочу сделать это без изменения класса A. Я не хочу добавлять делегата в A и присоединять слушатель к этому делегату.Представьте себе сценарий, в котором у меня нет исходного кода для класса A.

Я не могу использовать здесь шаблон оформления, потому что не могу изменить код, который вызывает A.DoSomething ().Я читал что-то о Reflection.Emit или DynamicMethod для динамического изменения или определения метода во время выполнения.Может ли оно применяться здесь и как?

1 Ответ

0 голосов
/ 28 февраля 2011

Вы можете попробовать Aspect Oriented Programming с чем-то вроде PostSharp , что, я считаю, должно с этим справиться (переписывает CIL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...