Pregunta

¿Existe una forma manual de llamar a un objeto COM en el GAC en .NET, sin agregarlo como referencia?

La razón por la que pregunto es que solo sé cómo codificar en C # y quiero llamar a un objeto COM .NET y comprueba que sus llamadas CMO son visibles, pero obviamente no puede agregar un objeto COM .NET a un .NET ¡montaje! Como tiene que hacer referencia a él, me preguntaba si puede llamarlo si está registrado en el GAC manualmente a través del código C #.

¿Fue útil?

Solución

Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
object obj = Activator.CreateInstance(myType);
object[] args = new object[2];
args[0] = "Hello";
args[1] = 3;
myType.InvokeMember("MyMethod", BindingFlags.InvokeMethod, obj, args);

En .Net 4 algo como esto

Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
dynamic obj = Activator.CreateInstance(myType);
obj.MyMethod("Hello", 3);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top