Caricamento di Common Language Runtime in un processo
Prima che sia possibile eseguire codice gestito, l'host deve caricare e inizializzare Common Language Runtime. Tutti gli host iniziano con uno stub non gestito perché il runtime non è ancora in esecuzione nel processo. Per avviare il runtime, l'host può utilizzare un set di API non gestite fornite da .NET Framework e definite API di hosting. Per ulteriori informazioni, vedere Interfacce di hosting.
Nota |
---|
I metodi di hosting forniti da versioni di .NET Framework precedenti a .NET Framework versione 4 sono deprecati.È consigliabile utilizzare le interfacce introdotte da .NET Framework 4 e descritte in questo argomento. |
Un host può caricare CLR in un processo tramite una delle procedure seguenti:
Chiamare la funzione CLRCreateInstance per ottenere un'interfaccia ICLRMetaHost o ICLRMetaHostPolicy. La funzione CLRCreateInstance sostituisce tutte le funzioni CorBindTo* elencate nella sezione Funzioni statiche globali di hosting di .NET Framework 1.1 e 2.0.
Chiamare il metodo ICLRMetaHost::EnumerateInstalledRuntimes, ICLRMetaHost::GetRuntime o ICLRMetaHostPolicy::GetRequestedRuntime per ottenere un puntatore ICLRRuntimeInfo valido.
Chiamare il metodo ICLRRuntimeInfo::GetInterface. Specificare CLSID_CLRRuntimeHost per il parametro rclsid e IID_ICLRRuntimeHost per il parametro riid.
Il prototipo per tutte queste interfacce si trova nel file Metahost.h, che a sua volta si trova nella directory Include di Windows Software Development Kit (SDK). Gli host possono utilizzare sia l'interfaccia ICLRRuntimeInfo che l'interfaccia ICLRRuntimeHost per controllare la versione del runtime da caricare, nonché il comportamento delle funzioni di base, quali Garbage Collection e caricamento di assembly.
Utilizzare l'interfaccia ICLRRuntimeHost per effettuare le operazioni seguenti:
Avviare il runtime chiamando il metodo ICLRRuntimeHost::Start.
Eseguire il codice gestito.
Ottenere un puntatore all'interfaccia ICLRControl (che fornisce l'accesso ai gestori implementati da Common Language Runtime) e registrare un oggetto controllo host che implementa l'interfaccia IHostControl. Common Language Runtime chiama l'interfaccia IHostControl per determinare i gestori implementati dall'host.
Vedere anche
Riferimenti
Concetti
Transizione al codice di hosting gestito
Cenni preliminari sull'hosting