Forum: Programmieren allgemein
C#
by Khabarakh,
30. Aug 2010
Da rächt es sich, dass ich MEF noch nie verwendet habe :stupid: .
var catalog = new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly());
funktioniert. Vielleicht ignoriert der DirectoryCatalog Exe-Assemblies.
(Die nächsten 10 Tage im Urlaub...)
Forum: Programmieren allgemein
C#
by Khabarakh,
23. Aug 2010
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
EventHandlers = Assembly.GetEntryAssembly().GetTypes().Where(t => t.IsSubclassOf(typeof(ServerEvent))).ToList();
ersetzen.
Hm? Wenn du einen Breaking Change in 4.0 treffen solltest, gebe ich dir einen aus ;) .
...
Forum: Programmieren allgemein
C#
by Khabarakh,
22. Aug 2010
Nicht so kompliziert denken und einfach Instanzmethoden daraus machen ;) ? Ich sehe da keinen Nachteil - und wie gesagt können sich dadurch sogar ganz andere Möglichkeiten eröffnen :) :
class Dispatcher
{
IEnumerable<ServerEvent> EventHandlers { get; set; }
public Dispatcher()
{
// Here be MEF magic...
var catalog = new DirectoryCatalog(@".\");
Forum: Programmieren allgemein
C#
by Khabarakh,
22. Aug 2010
Ich denke, ein konkretes Anwendungsbeispiel wäre langsam hilfreich :) . Von Dependency Injection bis zu Funktionaler Programmierung (Higher-Order-Functions) gibt es manchmal sogar bessere Lösungen als virtuelle statische Methoden.
Eine virtuelle statische Methode direkt umzusetzen, ohne Verlust von statischer Typisierung, wirst du aber nur erreichen, indem du sie zur Instanzmethode machst und...