¿Qué tengo que hacer para poner en práctica un "proc" COM servidor en C#?
Pregunta
Estoy tratando de implementar un "proc" servidor COM escrito en C#.¿Cómo puedo hacer esto?
Necesito el código de C# para ser "proc" desde mi principal aplicación de C++, ya que no puedo cargar el .NET en mi proceso principal espacio
Por QUÉ?:
Mi código C++ es un archivo DLL que se carga en muchos clientes diferentes EXE, algunos de los cuales utilizan diferentes versiones de el .NET runtime.Ya que sólo puede haber un tiempo de ejecución cargado en un proceso único, mi mejor opción parece ser la de poner mi código de C# en otro proceso.
Solución
Usted puede crear componentes COM+ el uso del Sistema.EnterpriseServices.ServicedComponent.En consecuencia, usted será capaz de crear fuera de proceso y en el proceso (cliente) componente de activación, así como COM+ todos los beneficios de la agrupación, remoting, ejecutar como un servicio de windows, etc.
Otros consejos
Aquí podemos leer que es posible, pero el exe será cargado como una biblioteca y no se inicia en el propio proceso como un archivo exe.Yo no sé si eso es un problema para usted?También contiene algunas soluciones posibles si queremos hacer es actuar como un verdadero fuera de proceso de servidor com.Pero tal vez el uso de otra forma de comunicación entre procesos es mejor.Como .Net Remoting.
No puedo recomendar este como el camino, pero usted puede crear un COM-callable wrapper para su C# biblioteca, a continuación, crear una VB6 proyecto exe de ActiveX que los delegados de las llamadas a su C# biblioteca.
¿Por qué no puedes cargar el .net en procesar el espacio?Es posible alojar el .net y llame en .net usando COM.