Feedback

C# - Search Plugin-DLLs with one line

Veröffentlicht von am 05.03.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 05.03.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 05.03.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!