I want to implement my own messaging system, and as part of that i've got the interface and extension method below defined:Trouble is, i get an error:Code:public interface IMessage<TArgs> where TArgs : EventArgs { event EventHandler<TArgs> Fired; object Sender { get; set; } TArgs Args { get; set; } void Dispatch(); } public static class MessageExtensionMethods { public static void Dispatch(this IMessage<EventArgs> Message) { if (Message.Fired != null) Message.Fired.Invoke(Message.Sender, Message.Args); } }
This error makes sense, however i want to raise the event in the extension method of the interface so i don't need an identical method in each class.Code:The event 'XNAEngine.Messaging.IMessage<System.EventArgs>.Fired' can only appear on the left hand side of += or -=
Any ideas? I've tried searching, but all i end up with is general info about extension methods.



Reply With Quote