Was muss ich tun, um einen "out of proc" COM-Server in C # zu implementieren?

8

Ich versuche, einen COM-Server "out of proc" zu implementieren, der in C # geschrieben wird. Wie mache ich das?

Ich brauche den C # -Code in meiner C ++ - Hauptanwendung "out of proc", weil ich die .NET-Runtime nicht in meinen Hauptprozessbereich laden kann (WARUM ?: Mein C ++ - Code befindet sich in einer DLL, die in viele geladen ist) Verschiedene Kunden-EXEs, von denen einige verschiedene Versionen der .NET-Laufzeit verwenden Da es nur eine Laufzeit in einen einzigen Prozess laden kann, scheint es am besten zu sein, meinen C # -Code in einen anderen Prozess zu legen.)

    
jm. 27.08.2008, 17:08
quelle

4 Antworten

5

Sie können COM + -Komponenten mithilfe von System.EnterpriseServices.ServicedComponent erstellen. Folglich können Sie sowohl eine prozessexterne und eine prozessinterne (Client-) Komponentenaktivierung als auch alle COM + -Vorteile von Pooling, Remoting, Ausführen als Windows-Dienst usw. erstellen.

    
Erick Sgarbi 02.09.2008, 09:41
quelle
1

Hier können wir lesen, dass es möglich ist, aber die exe wird als eine Bibliothek geladen und nicht in einem eigenen Prozess wie eine exe gestartet. Ich weiß nicht, ob das ein Problem für dich ist. Es enthält auch einige mögliche Lösungen, wenn Sie möchten, dass es sich wie ein echter Out-of-Process-Com-Server verhält. Aber vielleicht ist es besser, eine andere Art der Interprozesskommunikation zu verwenden. Wie .Net Remoting.

    
Lars Truijens 27.08.2008 17:25
quelle
0

Ich kann dies nicht als Weg empfehlen, aber Sie könnten einen COM-aufrufbaren Wrapper für Ihre C # -Bibliothek erstellen und dann ein VB6-ActiveX-Projekt erstellen, das Aufrufe an Ihre C # -Bibliothek delegiert.

>     
Chris Farmer 27.08.2008 17:19
quelle
0

Warum können Sie die .NET-Laufzeit nicht in Ihren Prozessspeicher laden? Es ist möglich, die .net-Laufzeitumgebung zu hosten und mit COM in .net aufzurufen.

    
Joel Lucsy 28.08.2008 02:00
quelle

Tags und Links