using System;
using System.IO;
using System.Reflection;
namespace ICTTools.NET {
internal class ToolLoader {
public static void loadToolsFromFolder(String folder) {
var toolFolderInfo =
new DirectoryInfo
(folder
);
FileInfo[] toolDLLs = toolFolderInfo.GetFiles("*.dll");
foreach (FileInfo toolFileInfo in toolDLLs) {
Console.WriteLine("Loading tool: {0}", toolFileInfo.Name);
Assembly assembly = Assembly.LoadFrom(folder + "/" + toolFileInfo.Name);
foreach (Type type in assembly.GetTypes()) {
if (type.IsClass) {
if (type.GetInterface("ICTTools.NET.ITool") == null) { //alle tool classes moeten ITool geimplementeerd hebben
continue;
}
Console.WriteLine("...Found Tool Class : {0}", type.FullName);
var toolInstance = (Tool) Activator.CreateInstance(type);
}
}
}
}
}
}