Sommario:
- Definizione - Cosa significa Runtime Callable Wrapper (RCW)?
- Techopedia spiega il runtime Callable Wrapper (RCW)
Definizione - Cosa significa Runtime Callable Wrapper (RCW)?
Un wrapper callable di runtime (RCW) è un oggetto wrapper generato da Common Language Runtime (CLR) per incapsulare un oggetto COM (Component Object Model) per esporlo come assembly .NET.
Un RCW funge da interfaccia principale per un client .NET che deve interagire con un componente COM eseguendo il marshalling delle chiamate tra di loro. Forma un wrapper per metadati che espone i componenti COM al CLR. Aiuta i contenitori ActiveX esistenti a ospitare i controlli .NET e aiuta le applicazioni .NET Windows Form a ospitare i contenitori ActiveX. RCW è inoltre utile nei sistemi aziendali che sono stati creati utilizzando componenti COM, consentendo l'integrazione del loro vecchio codice legacy con componenti .NET di nuova concezione senza influire sulla produttività.
Techopedia spiega il runtime Callable Wrapper (RCW)
Un componente COM è un oggetto riutilizzabile binario che fornisce i suoi servizi pubblicando le interfacce attraverso le quali avviene la comunicazione con i suoi client. La definizione delle interfacce o dei contratti binari del componente COM è specificata nella libreria dei tipi delle interfacce. A differenza di COM, la comunicazione tra oggetti .NET è basata su oggetti anziché su interfaccia. RCW funge da ponte tra i componenti COM e gli oggetti .NET per instradare le operazioni e mediare tra i due tramite il marshalling.
Un RCW gestisce la durata del suo oggetto COM incapsulato. Durante il passaggio del riferimento tra due domini o appartamenti dell'applicazione, verrà utilizzato il proxy dell'oggetto. La creazione di RCW si basa sui metadati derivati dalla libreria dei tipi. La sua distruzione avviene durante la raccolta dei rifiuti. Il marshalling di RCW include la conversione degli argomenti del metodo e dei valori di ritorno in modo tale che siano rappresentati in modo che possano essere letti sia dal client che dal server. Un esempio di marshalling può essere la conversione che ha luogo per un argomento di stringa che deve essere passato come tipo BSTR per un componente COM, mentre deve essere di tipo stringa in un client .NET.
RCW può essere creato utilizzando Visual Studio, che utilizza una funzione di generazione automatica del codice, rendendo il processo semplice e trasparente per l'utente. In alternativa, l'assieme RCW contiene metadati per i tipi definiti nella libreria dei tipi di un componente che può essere creato utilizzando lo strumento tlbimp.exe dalla riga di comando.
Questa definizione è stata scritta nel contesto di .NET
