J'ai trouvé cette question et des réponses très utile, cependant, j'ai des problèmes de chemins, de sorte que cette réponse serait de couvrir de chargement de la bibliothèque par trouver le chemin du répertoire bin.
Première solution:
string assemblyName = "library.dll";
string assemblyPath = HttpContext.Current.Server.MapPath("~/bin/" + assemblyName);
Assembly assembly = Assembly.LoadFrom(assemblyPath);
Type T = assembly.GetType("Company.Project.Classname");
Company.Project.Classname instance = (Company.Project.Classname) Activator.CreateInstance(T);
Deuxième solution
string assemblyName = "library.dll";
string assemblyPath = HttpContext.Current.Server.MapPath("~/bin/" + assemblyName);
Assembly assembly = Assembly.LoadFile(assemblyPath);
(Company.Project.Classname) instance = (Company.Project.Classname) assembly.CreateInstance("Company.Project.Classname");
Vous pouvez utiliser le même principe pour les interfaces (vous serait la création d'une classe, mais la coulée de l'interface), tels que:
(Company.Project.Interfacename) instance = (Company.Project.Interfacename) assembly.CreateInstance("Company.Project.Classname");
Cet exemple est l'application web, mais similaire pourrait être utilisée pour une application de Bureau, la seule voie est résolu de manière différente, par exemple
Path.GetDirectoryName(Application.ExecutablePath)