Maison > développement back-end > C++ > Comment puis-je charger et utiliser dynamiquement des DLL en C# ?

Comment puis-je charger et utiliser dynamiquement des DLL en C# ?

Mary-Kate Olsen
Libérer: 2025-01-14 09:37:44
original
410 Les gens l'ont consulté

How Can I Dynamically Load and Use DLLs in C#?

Chargement dynamique C# de DLL

Le chargement et l'utilisation de DLL au moment de l'exécution sont un scénario courant dans les applications C#. Cela permet aux développeurs de charger du code externe et d'étendre les fonctionnalités de leurs programmes.

Utilisez généralement Assembly.LoadFile() pour charger les DLL au moment de l'exécution. Cependant, le simple chargement de la DLL ne fournit pas un accès immédiat à ses méthodes. C’est là qu’interviennent les notions de réflexion et d’objets dynamiques.

Réflexion

La réflexion implique la vérification et la manipulation des types au moment de l'exécution. Il est capable d'accéder à des membres et d'appeler des méthodes inconnues au moment de la compilation. Dans l'exemple fourni, vous pouvez utiliser la réflexion pour appeler la méthode "Output" depuis une DLL chargée :

<code class="language-csharp">foreach (Type type in DLL.GetExportedTypes())
{
    var c = Activator.CreateInstance(type);
    type.InvokeMember("Output", BindingFlags.InvokeMethod, null, c, new object[] {@"Hello"});
}</code>
Copier après la connexion

Dynamique (.NET 4.0 et supérieur)

Les objets dynamiques permettent une plus grande flexibilité dans l'accès dynamique aux membres et aux méthodes d'appel. En utilisant le mot-clé dynamic, vous pouvez convertir une instance d'un type chargé en dynamic et accéder directement à ses membres :

<code class="language-csharp">foreach (Type type in DLL.GetExportedTypes())
{
    dynamic c = Activator.CreateInstance(type);
    c.Output(@"Hello");
}</code>
Copier après la connexion

Dans les deux cas, le code appelle avec succès la méthode "Output" à partir de la DLL chargée au moment de l'exécution, vous permettant d'accéder à ses fonctionnalités dans votre application C#.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal