Pregunta

Una de las cosas buenas de COM / ActiveX fue el EXE fuera de proceso. Podría tener un EXE que expusiera los métodos y las propiedades en una forma utilizable por otros procesos, incluidos VBScript y JScript. Al mismo tiempo, el EXE podría tener su propia funcionalidad, relacionada o no relacionada con la expuesta por su biblioteca de tipos.

¿Qué es el equivalente a .NET?

Tengo un proyecto VB6 existente que es un intérprete de lenguaje de scripting (usando MSScript) y un recurso de varias funciones de herramienta para otros lenguajes de scripting. Se ha sugerido que intente convertirlo a .NET.

¿Esto va a funcionar, o terminaré dividiendo el elemento en dos?

¿Fue útil?

Solución

Los servicios empresariales le permitirán hacer precisamente eso. Puede ejecutar un componente COM como:

  • Un proceso DLLHost
  • Un servicio
  • Una biblioteca en proceso (esto está en el mismo proceso que su otro código)

Hay numerosos ejemplos en internet sobre estos. Lo que se reduce a es:

  • Decore las clases que necesita exponer a COM con interfaces
  • Los componentes que desea alojar deben provenir de ServicedComponent
  • Decore sus interfaces con un GuidAttribute (use un Guid único)
  • Decorar las interfaces y clases que están expuestas a COM con un atributo ComVisible (verdadero)

Espero que esto ayude.

Otros consejos

La correspondencia de .NET es .NET Remoting para .NET 2.0, y WCF para 3.0+. Si necesita comunicarse con objetos COM, sin embargo, debe crear un objeto expuesto a COM en su lugar. Hay bastantes tutoriales para eso.

Hay algunas opciones para esto; el más obvio es componentes revisados ??; esto le permite alojar el código administrado en COM + para ejecutarlo en un proceso separado, pero necesita GAC ??/ COM que se pueda llamar, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top