Maison >développement back-end >C++ >Comment puis-je charger et instancier un assembly .NET en connaissant uniquement son nom et son nom de classe ?
Chargement et création dynamiques d'instances d'assemblys .NET
Dans de nombreux scénarios de développement, vous devrez peut-être charger et créer une instance d'un assembly .NET au moment de l'exécution, en connaissant uniquement son nom et la classe que vous souhaitez utiliser. Ceci est différent du référencement traditionnel, où vous ajoutez explicitement une référence à votre projet.
Utilisation de Assembly.LoadFrom et Activator.CreateInstance
Le framework .NET fournit les outils nécessaires pour gérer cela. Assembly.LoadFrom
charge l'assembly en mémoire, rendant ses types accessibles. Ensuite, Activator.CreateInstance
crée une instance de la classe spécifiée dans cet assembly.
Exemple de code
Voici comment charger un assembly et créer une instance de classe :
<code class="language-csharp">Assembly assembly = Assembly.LoadFrom("library.dll"); Type type = assembly.GetType("Company.Project.Classname"); object instanceOfClassname = Activator.CreateInstance(type);</code>
Gestion des chemins inconnus
Si le chemin exact de la DLL est inconnu, Assembly.LoadFrom
ne fonctionnera pas. Dans cette situation, vous pouvez essayer Activator.CreateInstance(assemblyName, typeName)
. Cette méthode tente de localiser le type en fonction des noms d’assembly et de type. En cas d'échec, vous pouvez rechercher des répertoires spécifiques pour l'assembly, puis utiliser Assembly.LoadFrom
pour l'instanciation.
Cette approche ajoute de la flexibilité d'exécution à vos applications, leur permettant d'interagir avec des assemblys sans référencement explicite préalable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!