Heim >Backend-Entwicklung >C++ >Wie kann ich eine .NET-Assembly laden und instanziieren, wenn ich nur ihren Namen und Klassennamen kenne?
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>
Umgang mit unbekannten Pfaden
Wenn der genaue Pfad der DLL unbekannt ist, Assembly.LoadFrom
funktioniert 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!