2009-06-26 7 views
2

I COM-DLLs laden können, die wie folgt auf meinem Rechner registriert sind:Erstellen Instanz von COM-Klasse dynamisch in .NET

Type type = Type.GetTypeFromProgID("MYCOMDLL.ClassName"); 
object boxed = Activator.CreateInstance(type); 

dann kann ich herumzustochern Methoden aufrufen usw.

Wie kann ich erreichen, dies aus einer DLL-Datei, die nicht auf meinem Computer registriert ist?

So etwas wie dieses Magicode:

Type type = Type.GetTypeFromFile("MyFile.dll", "MYCOMDLL.ClassName"); 
object boxed = Activator.CreateInstance(type); 

Ist das möglich?

Antwort

0

fand ich diesen Link, die haben, was Sie wollen:

Dynamically calling an unmanaged dll from .NET (C#)

Sieht aus wie Sie eine Hilfsklasse um ihn herum wickeln konnte.

+0

Das funktioniert für nicht verwaltete native DLLs, aber wenn es eine COM-Bibliothek ist, wird es nicht. – Kev

+0

Hoppla, du hast Recht. Ich suchte nach Alternativen, fand eine Möglichkeit, eine Livrary zu laden und alle COM-Objekte abzurufen, aber die Aktivierung selbst scheint die Registrierung der DLL erforderlich zu machen. –

0

here ähnliche Frage lesen und Kommentare meiner und Autor suchen.

Verwandte Themen