Das klingt natürlich wirklich nett. Einen Haken hat das ganze allerdings: das gibts alles erst ab .Net 4 oder?
Integriert ja,
ansonsten... . Wenn du darin Overkill siehst, kann ich dir das aber schlecht verübeln, also würde ich in Anlehnung an Phoenix' Code den MEF-Composition-Teil durch
Code:
EventHandlers = Assembly.GetEntryAssembly().GetTypes().Where(t => t.IsSubclassOf(typeof(ServerEvent))).ToList();
ersetzen.
Ich bin aber an 3.5 gebunden, durch andere Libraries...
Hm? Wenn du einen Breaking Change in 4.0 treffen solltest, gebe ich dir einen aus
.
Ist ja nicht so dass ich was gegen Instanzen hätte
Nur bei meinem Ansatz wären sie einfach überflüssig gewesen...
Und Herr Hejlsberg dachte wahrscheinlich umgekehrt, dass ein Feature überflüssig ist, das sich (zumindest in Fällen wie diesem) ohne wirklichen Verlust auch auf einfacherem Weg realisieren lässt. Wie Eric Lippert es einmal sagte: Jedes Sprachfeature beginnt bei -500...
Und ohne dir nahe treten zu wollen, oder überhaupt zu wissen, wie tief du schon in der CLR drinsteckst, ist es imo ein beeinträchtigender Fehler von Umsteigern, in einer managed Sprache Instanzierungen zählen zu wollen. Sagt mir jedenfalls meine eigene Erfahrung - man muss loslassen können, um zu genießen
.
@Sebastian: Uh, jetzt musst du mir aber dringend erklären, wo du nun noch einen Vorteil von statischen Methoden + Reflection siehst.