Heim > Backend-Entwicklung > C++ > Wie kann ich DLLs in C# dynamisch laden und verwenden?

Wie kann ich DLLs in C# dynamisch laden und verwenden?

Mary-Kate Olsen
Freigeben: 2025-01-14 09:37:44
Original
409 Leute haben es durchsucht

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

C# dynamisches Laden der DLL

Das Laden und Verwenden von DLLs zur Laufzeit ist ein häufiges Szenario in C#-Anwendungen. Dadurch können Entwickler externen Code laden und die Funktionalität ihrer Programme erweitern.

Verwenden Sie normalerweise Assembly.LoadFile(), um DLLs zur Laufzeit zu laden. Das einfache Laden der DLL ermöglicht jedoch keinen sofortigen Zugriff auf ihre Methoden. Hier kommen die Konzepte der Reflexion und der dynamischen Objekte ins Spiel.

Reflexion

Reflexion beinhaltet das Überprüfen und Bearbeiten von Typen zur Laufzeit. Es ist in der Lage, auf Mitglieder zuzugreifen und Methoden aufzurufen, die zur Kompilierungszeit unbekannt sind. Im bereitgestellten Beispiel können Sie Reflection verwenden, um die Methode „Output“ aus einer geladenen DLL aufzurufen:

<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>
Nach dem Login kopieren

Dynamisch (.NET 4.0 und höher)

Dynamische Objekte ermöglichen eine größere Flexibilität beim dynamischen Zugriff auf Mitglieder und beim Aufrufen von Methoden. Mit dem Schlüsselwort dynamic können Sie eine Instanz eines geladenen Typs in dynamic umwandeln und direkt auf seine Mitglieder zugreifen:

<code class="language-csharp">foreach (Type type in DLL.GetExportedTypes())
{
    dynamic c = Activator.CreateInstance(type);
    c.Output(@"Hello");
}</code>
Nach dem Login kopieren

In beiden Fällen ruft der Code zur Laufzeit erfolgreich die „Output“-Methode der geladenen DLL auf, sodass Sie in Ihrer C#-Anwendung auf deren Funktionalität zugreifen können.

Das obige ist der detaillierte Inhalt vonWie kann ich DLLs in C# dynamisch laden und verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage