Domanda

Una delle cose belle di COM / ActiveX è stata la EXE fuori processo. Potresti avere un EXE che espone metodi e proprietà in una forma utilizzabile da entrambi gli altri processi, inclusi VBScript e JScript. Allo stesso tempo, EXE potrebbe avere una sua funzionalità, correlata o non correlata a quella esposta dalla sua libreria dei tipi.

Qual è l'equivalente di .NET?

Ho un progetto VB6 esistente che è un interprete del linguaggio di scripting (usando MSScript) e una risorsa di varie funzioni dello strumento per altri linguaggi di scripting. È stato suggerito di provare a convertirlo in .NET.

Funzionerà o finirò per dividere un oggetto in due?

È stato utile?

Soluzione

I servizi aziendali ti permetteranno di fare proprio questo. È possibile eseguire un componente COM come:

  • Un processo DLLHost
  • Un servizio
  • Una libreria inproc (è nello stesso processo dell'altro codice)

Ci sono numerosi esempi su Internet al riguardo. Ciò che si riduce è:

  • Decora le tue classi che devi esporre a COM con le interfacce
  • I componenti che si desidera ospitare devono essere derivati ??da ServicedComponent
  • Decora le tue interfacce con un GuidAttribute (usa un unico Guid)
  • Decorare le interfacce e le classi esposte a COM con un attributo ComVisible (true)

Spero che questo aiuti.

Altri suggerimenti

La corrispondenza .NET è .NET Remoting per .NET 2.0 e WCF per 3.0+. Tuttavia, se è necessario comunicare con oggetti COM, è necessario creare un oggetto esposto COM. Ci sono alcuni tutorial là fuori per quello.

Ci sono alcune opzioni per questo; l'essere più ovvio componenti sottoposti a manutenzione ; ciò consente di ospitare il codice gestito in COM + per eseguirlo in un processo separato, ma è necessario chiamare GAC / COM, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top