Condividi tramite


Metodo IMetaDataDispenserEx::SetOption

Imposta l'opzione specificata su un valore specificato per l'ambito dei metadati corrente. L'opzione controlla come vengono gestite le chiamate all'ambito dei metadati corrente.

Sintassi

HRESULT SetOption (  
    [in] REFGUID optionId,
    [in] const VARIANT *pValue  
);  

Parametri

optionId
[in] Puntatore a un GUID che specifica l'opzione da impostare.

pValue
[in] Valore da usare per impostare l'opzione. Il tipo di questo valore deve essere una variante del tipo di opzione specificato.

Commenti

Nella tabella seguente sono elencati i GUID disponibili a cui il optionId parametro può puntare e i valori validi corrispondenti per il pValue parametro.

GUID Descrizione pValueParametro
MetaDataCheckDuplicatesFor Controlla quali elementi vengono controllati per i duplicati. Ogni volta che si chiama un metodo IMetaDataEmit che crea un nuovo elemento, è possibile chiedere al metodo di verificare se l'elemento esiste già nell'ambito corrente. Ad esempio, è possibile verificare l'esistenza di mdMethodDef elementi. In questo caso, quando si chiama IMetaDataEmit::D efineMethod, il metodo non esiste già nell'ambito corrente. Questo controllo usa la chiave che identifica in modo univoco un determinato metodo: tipo padre, nome e firma. Deve essere una variante di tipo UI4 e deve contenere una combinazione dei valori dell'enumerazione CorCheckDuplicatesFor .
MetaDataRefToDefCheck I controlli a cui si fa riferimento vengono convertiti in definizioni. Per impostazione predefinita, il motore di metadati ottimizza il codice convertendo un elemento a cui si fa riferimento alla relativa definizione se l'elemento a cui si fa riferimento è effettivamente definito nell'ambito corrente. Deve essere una variante di tipo UI4 e deve contenere una combinazione dei valori dell'enumerazione CorRefToDefCheck .
MetaDataNotificationForTokenMovement Controlla quali mapping dei token si verificano durante un'unione di metadati generano callback. Usare il metodo IMetaDataEmit::SetHandler per stabilire l'interfaccia IMapToken . Deve essere una variante di tipo UI4 e deve contenere una combinazione dei valori dell'enumerazione CorNotificationForTokenMovement .
MetaDataSetENC Controlla il comportamento di modifica e continuazione (ENC). È possibile impostare una sola modalità di comportamento alla volta. Deve essere una variante di tipo UI4 e deve contenere un valore dell'enumerazione CorSetENC . Il valore non è una maschera di bit.
MetaDataErrorIfEmitOutOfOrder I controlli che generano errori non ordinati generano callback. L'emissione di metadati non è irreversibile; tuttavia, se si generano metadati in un ordine preferito dal motore di metadati, i metadati sono più compattati e pertanto possono essere ricercati in modo più efficiente. Usare il metodo per stabilire l'interfaccia IMetaDataEmit::SetHandlerIMetaDataError . Deve essere una variante di tipo UI4 e deve contenere una combinazione dei valori dell'enumerazione CorErrorIfEmitOutOfOrder .
MetaDataImportOption Controlla quali tipi di elementi eliminati durante un ENC vengono recuperati da un enumeratore. Deve essere una variante di tipo UI4 e deve contenere una combinazione dei valori dell'enumerazione CorImportOptions .
MetaDataThreadSafetyOptions Controlla se il motore di metadati ottiene blocchi lettore/writer, garantendo così la sicurezza dei thread. Per impostazione predefinita, il motore presuppone che l'accesso sia a thread singolo dal chiamante, quindi non vengono ottenuti blocchi. I client sono responsabili della gestione corretta della sincronizzazione dei thread quando si usa l'API dei metadati. Deve essere una variante di tipo UI4 e deve contenere un valore dell'enumerazione CorThreadSafetyOptions . Il valore non è una maschera di bit.
MetaDataGenerateTCEAdapters Controlla se l'utilità di importazione della libreria dei tipi deve generare gli adattatori TCE (tight coupled event) per i contenitori del punto di connessione COM. Deve essere una variante di tipo BOOL. Se pValue è impostato su true, l'utilità di importazione della libreria dei tipi genera gli adattatori TCE.
MetaDataTypeLibImportNamespace Specifica uno spazio dei nomi non predefinito per la libreria dei tipi che viene importata. Deve essere un valore Null o una variante di tipo BSTR. Se è un valore Null, lo spazio dei nomi corrente è impostato su Null. In pValue caso contrario, lo spazio dei nomi corrente viene impostato sulla stringa contenuta nel tipo BSTR della variante.
MetaDataLinkerOptions Controlla se il linker deve generare un assembly o un file di modulo .NET Framework. Deve essere una variante di tipo UI4 e deve contenere una combinazione dei valori dell'enumerazione CorLinkerOptions .
MetaDataRuntimeVersion Specifica la versione di Common Language Runtime in base alla quale è stata compilata l'immagine. La versione viene archiviata come stringa, ad esempio "v1.0.3705". Deve essere un valore Null, un valore VT_EMPTY o una variante di tipo BSTR. Se pValue è Null, la versione di runtime è impostata su Null. Se pValue è VT_EMPTY, la versione è impostata su un valore predefinito, che viene disegnato dalla versione di Mscorwks.dll in cui è in esecuzione il codice dei metadati. In caso contrario, la versione di runtime è impostata sulla stringa contenuta nel tipo BSTR della variante.
MetaDataMergerOptions Specifica le opzioni per l'unione dei metadati. Deve essere una variante di tipo UI4 e deve contenere una combinazione dei valori dell'enumerazione MergeFlags , descritta nel file CorHdr.h.
MetaDataPreserveLocalRefs Disabilita l'ottimizzazione dei riferimenti locali nelle definizioni. Deve contenere una combinazione dei valori dell'enumerazione CorLocalRefPreservation .

Requisiti

Piattaforma: Vedere Requisiti di sistema.

Intestazione: Cor.h

Libreria: Usato come risorsa in MsCorEE.dll

Versioni di .NET Framework: Disponibile da 1.0

Vedi anche