J'ai actuellement une bibliothèque de classe .NET écrite en C# qui expose sa fonctionnalité via COM dans un programme C++ (pre-.NET).Création d'un serveur COM Automation en C#
Nous voulons maintenant déplacer la bibliothèque hors processus pour libérer de l'espace d'adressage dans l'application principale (c'est une application de traitement d'image, et les grandes images mangent de l'espace d'adressage). Je me souviens de mes jours VB6 que l'on pouvait créer un "serveur d'automatisation OLE". Le système d'exploitation démarre et arrête automatiquement le serveur .exe lorsque des objets ont été créés/détruits. Cela semble parfait pour nous: dans la mesure où je peux voir rien ne changerait dans le client, sauf qu'il appellerait CoCreateInstance avec CLSCTX_LOCAL_SERVER au lieu de CLSCTX_INPROC_SERVER.
Comment créer un tel serveur hors processus en C#? Soit il n'y a pas d'information en ligne à ce sujet, soit ma terminologie est éteinte/périmée!
Je suis venu à la conclusion à un moment donné que cela n'a pas été pris en charge, mais je n » t vu que explicitement déclaré nulle part. J'ai essayé d'interférer avec CoRegisterClassObject pour enregistrer une fabrique pour un objet COM C#, mais je n'ai jamais réussi à l'utiliser. Curieux si quelqu'un d'autre a eu de la chance! –
Vérifiez ma réponse ici: http://stackoverflow.com/questions/24724784/com-interop-with-ipc-in-c-sharp/24732010#24732010 –