Feedback

C# - Search Plugin-DLLs with one line

Veröffentlicht von am 3/5/2009
(3 Bewertungen)
var result = from dll in Directory.GetFiles(Environment.CurrentDirectory, "*.dll")
                         let a = Assembly.Load(Path.GetFileNameWithoutExtension(dll))
                         from t in a.GetTypes()
                         where t.GetInterface(typeof(IPluginInterfaceName).ToString()) != null
                         select Activator.CreateInstance(t) as IPluginInterfaceName;
Abgelegt unter Plugin, Linq, .

2 Kommentare zum Snippet

Mathias Pain schrieb am 3/5/2009:
Ich bekomm das irgendwie nicht gebacken.
Der Code hier läuft ohne Probleme.
Wenn ich danach ein foreach durchs Result mache sind jedoch alle Objekte null.
Irgendeine Idee?
Mathias Pain schrieb am 3/5/2009:
Danke habs doch geschafft. Wusste nicht das man das Interface in einer Assembly definieren muss die bei der Applikation und dem Plugin als Verweis eingefügt werden muss. Ansonsten Matchen die Typen nicht (weil der Assemblyname mit gematcht wird). ! coole sache. funktioniert übrigens auch mit web applikationen.
Herzlichen Dank !
 

Logge dich ein, um hier zu kommentieren!