Heim > Backend-Entwicklung > C++ > Wie kann ich eine .NET-Assembly laden und instanziieren, wenn ich nur ihren Namen und Klassennamen kenne?

Wie kann ich eine .NET-Assembly laden und instanziieren, wenn ich nur ihren Namen und Klassennamen kenne?

Susan Sarandon
Freigeben: 2025-01-19 09:11:09
Original
232 Leute haben es durchsucht

How Can I Load and Instantiate a .NET Assembly Knowing Only Its Name and Class Name?

Dynamisches Laden und Erstellen von Instanzen von .NET-Assemblys

In vielen Entwicklungsszenarien müssen Sie möglicherweise zur Laufzeit eine Instanz einer .NET-Assembly laden und erstellen, wobei Sie nur ihren Namen und die Klasse kennen, die Sie verwenden möchten. Dies unterscheidet sich von der herkömmlichen Referenzierung, bei der Sie explizit eine Referenz zu Ihrem Projekt hinzufügen.

Verwendung von Assembly.LoadFrom und Activator.CreateInstance

Das .NET-Framework bietet die Tools, um damit umzugehen. Assembly.LoadFrom lädt die Assembly in den Speicher und macht ihre Typen zugänglich. Dann erstellt Activator.CreateInstance eine Instanz der angegebenen Klasse innerhalb dieser Assembly.

Codebeispiel

So können Sie eine Assembly laden und eine Klasseninstanz erstellen:

<code class="language-csharp">Assembly assembly = Assembly.LoadFrom("library.dll");

Type type = assembly.GetType("Company.Project.Classname");

object instanceOfClassname = Activator.CreateInstance(type);</code>
Nach dem Login kopieren

Umgang mit unbekannten Pfaden

Wenn der genaue Pfad der DLL unbekannt ist, Assembly.LoadFromfunktioniert es nicht. In dieser Situation können Sie Activator.CreateInstance(assemblyName, typeName) versuchen. Diese Methode versucht, den Typ anhand der Assembly- und Typnamen zu finden. Wenn dies nicht gelingt, können Sie bestimmte Verzeichnisse nach der Assembly durchsuchen und dann Assembly.LoadFrom zur Instanziierung verwenden.

Dieser Ansatz verleiht Ihren Anwendungen Laufzeitflexibilität und ermöglicht ihnen die Interaktion mit Assemblys ohne vorherige explizite Referenzierung.

Das obige ist der detaillierte Inhalt vonWie kann ich eine .NET-Assembly laden und instanziieren, wenn ich nur ihren Namen und Klassennamen kenne?. 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