Frage

Eines der netten Dinge an Com/ActiveX war die Out-of-Process-Exe. Sie könnten ein EXE haben, das Methoden und Eigenschaften in einer Form enthüllt, die von beiden anderen Prozessen verwendet werden kann, einschließlich VBScript und JScript. Gleichzeitig könnte die Exe seine eigene Funktionalität haben, die sich mit der von seiner Typbibliothek ausgesetzt befindlichen Funktionen befassen oder nicht zu tun hat.

Was ist das .NET -Äquivalent?

Ich habe ein vorhandenes VB6 -Projekt, ein Skriptsprache -Interpreter (mit MSScript) und eine Ressource verschiedener Werkzeugfunktionen für andere Skriptsprachen. Es wurde vermutet, dass ich versuche, es in .NET zu konvertieren.

Wird dies funktionieren oder werde ich den einen Artikel in zwei Teile teilen?

War es hilfreich?

Lösung

Mit Unternehmensdiensten können Sie genau das tun. Sie können eine COM -Komponente ausführen als:

  • Ein dllhost -Prozess
  • Ein Dienst
  • Eine INPROC -Bibliothek (dies ist im gleichen Prozess wie Ihr anderer Code)

Es gibt zahlreiche Beispiele im Internet. Was es kommt, ist:

  • Dekorieren Sie Ihre Klassen, die Sie mit Schnittstellen an COM aussetzen müssen
  • Komponenten, die Sie hosten möchten
  • Dekorieren Sie Ihre Schnittstellen mit einem Guidtribute (Verwenden Sie eine eindeutige Richtlinie)
  • Dekorieren Sie die Schnittstellen und Klassen, die COM mit einem komvibel (wahren) Attribut ausgesetzt sind

Hoffe das hilft.

Andere Tipps

Die .NET -Korrespondenz ist .NET Remoting für .net 2.0 und WCF für 3.0+. Wenn Sie jedoch mit COM-Objekten kommunizieren müssen, müssen Sie stattdessen ein komplettes Objekt erstellen. Dafür gibt es einige Tutorials.

Dafür gibt es einige Möglichkeiten. das offensichtlichste Wesen Wartungskomponenten; Auf diese Weise können Sie den verwalteten Code in com+ hosten, um ihn in einem separaten Prozess auszuführen. Sie benötigen jedoch GAC/Com-Callable usw.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top