Class1 a un événement avec l'attribut [EventPublication ("event1")]. Class2 et Class3 héritent de Class1. Je souhaite souscrire Method1 à un événement dans un objet de Class2 et Method2 à un événement dans un objet de Class3 en utilisant [EventSubscription].Opennetcf.IOC, enregistrement d'événement et héritage
Mais dans les classes dérivées, il existe le même nom EventPublication de l'événement. Alors, comment distinguer les événements dans les classes dérivées? C'est possible?
EDIT: Peut-être que j'ai mal compris certaines choses évidentes sur IoC ou j'essaie de compliquer solution simple ... Je vais essayer de clarifier ma question. Voici un code:
class BasePresenter
{
[EventPublication("event")]
public event Action action;
public void Run()
{
someAction();
if (action != null)
action();
}
protected virtual void someAction()
{
}
}
class Presenter1 : BasePresenter
{
protected override void someAction()
{
}
}
class Presenter2 : BasePresenter
{
protected override void someAction()
{
}
}
class AnotherClass
{
[EventSubscription("event", ThreadOption.Caller)]
public void action1()
{
System.Windows.Forms.MessageBox.Show("Presenter1 started");
}
[EventSubscription("event", ThreadOption.Caller)]
public void action2()
{
System.Windows.Forms.MessageBox.Show("Presenter2 started");
}
}
Il existe des méthodes action1() et action2() dans une autre classe. Je voudrais déclencher action1() lorsque l'instance de la méthode Presenter1 Run() est appelée et déclencher action2() lorsque l'instance de la méthode Presenter2 Run() est appelée. Mais appeler la méthode Run() lancera les deux méthodes action1 et action2.
J'ai ajouté quelques modifications à la question. – raV720