RESPONDER UNA PREGUNTA

Si para responder la pregunta, crees necesario enviar un archivo adjunto, puedes hacerlo a traves del correo [email protected]

    Pregunta:  51364 - AGREGAR REFERENCIA A COMPONENTE COM
Autor:  Gonzalo Méndez
Hola a todos.
Por el título parece bastante obvia la respuesta. Y lo sería, si lo que quisiera hacer es agregar una referencia en tiempo de diseño.
Para explicarme mejor les cuento un poco el escenario.
Necesito desde mi aplicación, obtener datos de una base de datos externa, propiedad del cliente, y a la cual no tengo acceso salvo mediante la ejecución de Dlls programadas en C o en C++ (C "común", no .NET, osea que son dlls COM)
Como estas dlls son para este único cliente, tengo la restricción de que no pueden ser referenciadas en forma estática, porque implicaría tener que instalarlas en todos los clientes en versiones subsecuentes.
La solución que encontré fue generar dinámicamente mediante CodeDom el código que las ejecute y me devuelva el resultado. ´
Lo que hago es generar un ensamblado en memoria. Es una dll, pero está en memoria. La idea es establecer dinámicamente la referencia al componente que realmente debo ejecutar y que accede a la base, antes de que el ensamblado se compile en memoria.
Para eso hago del estilo:

ensambladoDinamico.ReferencedAssemblies.Add(<ruta del componente>)

Sé que esto funciona para componentes escritos en .NET, pero este caso es diferente porque se trata de un componente COM.
No quiero ponerme a programar todo sin saber si esto funcionaría, porque de lo contrario prefiero encontrar otro enfoque.
Muchas gracias desde ya.


Nombre
Apellidos
Correo
Comentarios