Comment implémenter des événements via une interface en C #?

J’ai un problème: imaginez que j’ai un système à base de plugin.

J’ai besoin d’une sorte d’interface avec laquelle je pourrais attraper les événements de chaque plugin, qui implémente par exemple l’interface IReporting .

 (IReporting) object.OnSomeEvent +=  

Mais je ne peux pas trouver un moyen de faire ça.

Au lieu de (IReporting) obj.XXX, vous devriez écrire ((IReporting) obj) .XXX

 public interface IFoo { event EventHandler Boo; } class Foo : IFoo { public event EventHandler Boo; public void RaiseBoo() { if (Boo != null) Boo(this, EventArgs.Empty); } } ... private void TestClass_Boo(object sender, EventArgs e) { throw new NotImplementedException(); } ... object o = new Foo(); ((IFoo)o).Boo += TestClass_Boo; ((Foo)o).RaiseBoo(); 

En ce qui concerne le cadre de plug-in, jetez un œil aux solutions existantes avec une bonne architecture, par exemple MEF