2009-03-03 11 views
7

Uno degli aspetti positivi di COM/ActiveX era l'EXE out-of-process. Potresti avere un EXE che mostra metodi e proprietà in una forma utilizzabile da entrambi gli altri processi, inclusi VBScript e JScript. Allo stesso tempo, l'EXE potrebbe avere una propria funzionalità, correlata o non correlata a quella esposta dalla sua libreria di tipi.Esiste un equivalente di COM EXE out-of-process in .NET?

Qual è l'equivalente .NET?

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

Sta andando a buon fine o finirò per suddividere l'articolo in due?

risposta

4

I servizi aziendali ti consentiranno di farlo. È possibile eseguire un componente COM come: processo

  • Un DLLHost
  • Un servizio
  • Una libreria inproc (questo è nello stesso processo come altro codice)

ci sono numerosi esempi su internet su questi. Che si tratta di è:

  • Decora il tuo classi che è necessario esporre a COM con interfacce
  • componenti che si desidera ospitare bisogno di essere derrived da ServicedComponent
  • Decorare le interfacce con una GuidAttribute (utilizzare un unico Guid)
  • decorare le interfacce e classi che sono esposti a COM con un ComVisible (vero) attribuire

Spero che questo aiuti.

3

La corrispondenza .NET è .NET Remoting per .NET 2.0 e WCF per 3.0+. Se è necessario comunicare con oggetti COM, tuttavia, è necessario creare un oggetto esposto a COM. Ci sono un bel po 'di tutorial là fuori per questo.

1

Ci sono alcune opzioni per questo; il più ovvio è serviced components; questo consente di ospitare il codice gestito in COM + per eseguirlo in un processo separato, ma è necessario GAC/COM-callable ecc.