System.Runtime.InteropServices Spazio dei nomi

Fornisce un'ampia gamma di membri che supportano l'interoperabilità COM e i servizi platform invoke. Se non si ha familiarità con questi servizi, vedere Interoperabilità con codice non gestito.

Classi

AllowReversePInvokeCallsAttribute

Consente a un metodo non gestito di chiamare un metodo gestito.

AutomationProxyAttribute

Specifica se il marshalling del tipo deve essere effettuato mediante il gestore di marshalling di Automazione oppure un proxy e uno stub personalizzati.

BestFitMappingAttribute

Controlla se i caratteri Unicode vengono convertiti nei caratteri ANSI corrispondenti più vicini.

BStrWrapper

Esegue il marshalling dei dati di tipo VT_BSTR dal codice gestito al codice non gestito. La classe non può essere ereditata.

ClassInterfaceAttribute

Indica il tipo di interfaccia di classe da generare per una classe esposta a COM, se viene generata un'interfaccia.

CoClassAttribute

Specifica l'identificatore di classe di una coclasse importata da una libreria dei tipi.

CollectionsMarshal

Classe non sicura che fornisce un set di metodi per accedere alle rappresentazioni di dati sottostanti delle raccolte.

ComAliasNameAttribute

Indica l'alias COM per un tipo di parametro o campo.

ComAwareEventInfo

Consente la registrazione ad associazione tardiva di un gestore eventi.

ComCompatibleVersionAttribute

Indica a un client COM che tutte le classi della versione corrente di un assembly sono compatibili con le classi della versione precedente.

ComConversionLossAttribute

Indica che le informazioni relative a una classe o a un'interfaccia sono state perse durante l'importazione da una libreria dei tipi in un assembly.

ComDefaultInterfaceAttribute

Specifica un'interfaccia predefinita da esporre a COM. La classe non può essere ereditata.

ComEventInterfaceAttribute

Identifica l'interfaccia di origine e la classe che implementa i metodi dell'interfaccia eventi generata quando si importa una coclasse da una libreria dei tipi COM.

ComEventsHelper

Offre metodi che consentono l'aggiunta e la rimozione dagli oggetti COM di delegati di .NET che gestiscono gli eventi.

COMException

Eccezione generata quando viene restituito un HRESULT non riconosciuto da una chiamata a un metodo COM.

ComImportAttribute

Indica che il tipo a cui è stato applicato l'attributo è stato definito in precedenza in COM.

ComRegisterFunctionAttribute

Specifica il metodo da chiamare quando si registra un assembly per l'utilizzo in COM; questo metodo consente l'esecuzione di codice scritto dall'utente durante la procedura di registrazione.

ComSourceInterfacesAttribute

Identifica un elenco di interfacce esposte come origini di eventi COM per la classe con attributi.

ComUnregisterFunctionAttribute

Specifica il metodo da chiamare quando si annulla la registrazione di un assembly per l'utilizzo in COM; questo metodo consente l'esecuzione di codice scritto dall'utente durante la procedura di annullamento della registrazione.

ComVisibleAttribute

Controlla l'accessibilità di un singolo tipo gestito o un membro, oppure di tutti i tipi all'interno di un assembly, per COM.

ComWrappers

Classe per gestire i wrapper di tipi IUnknown COM.

CriticalHandle

Rappresenta una classe wrapper per le risorse di handle.

CurrencyWrapper

Esegue il wrapping degli oggetti di cui il gestore di marshalling deve eseguire il marshalling come VT_CY.

DefaultCharSetAttribute

Specifica il valore dell'enumerazione CharSet. La classe non può essere ereditata.

DefaultDllImportSearchPathsAttribute

Specifica i percorsi usati per cercare le DLL che forniscono le funzioni per le operazioni platform invoke.

DefaultParameterValueAttribute

Imposta il valore predefinito di un parametro quando viene chiamato da un linguaggio che supporta parametri predefiniti. La classe non può essere ereditata.

DispatchWrapper

Esegue il wrapping degli oggetti di cui il gestore di marshalling deve eseguire il marshalling come VT_DISPATCH.

DispIdAttribute

Specifica l'identificatore di invio (DISPID) COM di un metodo, un campo o una proprietà.

DllImportAttribute

Indica che il metodo con attributi viene esposto da una libreria di collegamento dinamico (DLL) non gestita come un punto di ingresso statico.

DynamicInterfaceCastableImplementationAttribute

Attributo richiesto da qualsiasi tipo restituito da GetInterfaceImplementation(RuntimeTypeHandle).

ErrorWrapper

Esegue il wrapping degli oggetti di cui il gestore di marshalling deve eseguire il marshalling come VT_ERROR.

ExtensibleClassFactory

Consente la personalizzazione di oggetti gestiti estesi da oggetti non gestiti durante la creazione.

ExternalException

Il tipo di eccezione base per tutte le eccezioni di interoperabilità COM e le eccezioni SEH (Structured Exception Handling, gestione strutturata delle eccezioni).

FieldOffsetAttribute

Indica la posizione fisica dei campi all'interno della rappresentazione non gestita di una classe o una struttura.

GuidAttribute

Fornisce un oggetto Guid esplicito quando un GUID automatico non è auspicabile.

HandleCollector

Tiene traccia degli handle in sospeso e forza un'operazione di Garbage Collection quando viene raggiunta la soglia specificata.

IDispatchImplAttribute

Indica quale implementazione di IDispatch viene utilizzata da Common Language Runtime quando espone le interfacce duali e dispatch a COM.

ImmutableCollectionsMarshal

Classe non sicura che fornisce un set di metodi per accedere alle rappresentazioni di dati sottostanti di raccolte non modificabili.

ImportedFromTypeLibAttribute

Indica che i tipi definiti all'interno di un assembly sono stati definiti in origine in una libreria dei tipi.

InAttribute

Indica che il marshalling dei dati deve essere eseguito dal chiamante al chiamato, ma non di nuovo al chiamante.

InterfaceTypeAttribute

Indica se un'interfaccia gestita è del tipo dual, dispatch-only o solo IUnknown durante l'esposizione a COM.

InvalidComObjectException

Eccezione generata quando si usa un oggetto COM non valido.

InvalidOleVariantTypeException

Eccezione generata dal gestore di marshalling quando viene rilevato un argomento di tipo Variant per cui non è possibile eseguire il marshalling nel codice gestito.

LCIDConversionAttribute

Indica che la firma non gestita di un metodo prevede un parametro di ID impostazioni locali (LCID).

LibraryImportAttribute

Indica che un generatore di origine deve creare una funzione per gli argomenti di marshalling anziché basarsi sul runtime per generare una funzione di marshalling equivalente in fase di esecuzione.

ManagedToNativeComInteropStubAttribute

Fornisce supporto per la personalizzazione dell'utente di stub di interoperabilità negli scenari di interoperabilità da gestito a COM.

Marshal

Fornisce una raccolta di metodi per l'allocazione della memoria non gestita, la copia di blocchi di memoria non gestita e la conversione di tipi gestiti in tipi non gestiti, oltre ad altri metodi usati durante l'interazione con codice non gestito.

MarshalAsAttribute

Indica come eseguire il marshalling dei dati tra codice gestito e non gestito.

MarshalDirectiveException

Eccezione generata dal gestore di marshalling quando rileva un oggetto MarshalAsAttribute non supportato.

MemoryMarshal

Fornisce metodi per interoperabilità con Memory<T>, ReadOnlyMemory<T>, Span<T>e ReadOnlySpan<T>.

NativeLibrary

Offre API per la gestione delle librerie native.

NativeMemory

Questa classe contiene metodi usati principalmente per gestire la memoria nativa.

OptionalAttribute

Indica che un parametro è facoltativo.

OutAttribute

Indica che il marshalling dei dati deve essere effettuato dal chiamato al chiamante.

PosixSignalContext

Fornisce i dati per un PosixSignalRegistration evento.

PosixSignalRegistration

Gestisce un PosixSignaloggetto .

PreserveSigAttribute

Indica che la trasformazione della firma HRESULT che si svolge durante le chiamate di interoperabilità COM deve essere eliminata.

PrimaryInteropAssemblyAttribute

Indica che l'assembly con attributi è un assembly di interoperabilità primario.

ProgIdAttribute

Consente all'utente di specificare il ProgID di una classe.

RegistrationServices

Fornisce un insieme di servizi per la registrazione e l'annullamento della registrazione di assembly gestiti da utilizzare da COM.

RuntimeEnvironment

Fornisce un insieme di metodi static che restituiscono informazioni sull'ambiente Common Language Runtime.

RuntimeInformation

Visualizza informazioni sull'installazione di runtime .NET.

SafeArrayRankMismatchException

Eccezione generata quando il numero di dimensioni di un SAFEARRAY in entrata non corrisponde al numero di dimensioni specificato nella firma gestita.

SafeArrayTypeMismatchException

Eccezione generata quando il tipo di SAFEARRAY in entrata non corrisponde al tipo specificato nella firma gestita.

SafeBuffer

Fornisce un buffer di memoria controllato che può essere usato per la lettura e la scrittura. I tentativi di accedere alla memoria al di fuori del buffer controllato (sottocarichi e sovraccarichi) generano eccezioni.

SafeHandle

Rappresenta una classe wrapper per gli handle del sistema operativo. La classe deve essere ereditata.

SEHException

Rappresenta errori SEH (Structured Exception Handling).

SequenceMarshal

Offre una raccolta di metodi per l'interoperabilità con ReadOnlySequence<T>.

SetWin32ContextInIDispatchAttribute

Questo attributo è stato deprecato.

StandardOleMarshalObject

Sostituisce il gestore del marshalling con modello di threading Free CLR (Common Language Runtime) con il gestore del marshalling OLE STA.

StructLayoutAttribute

Consente di controllare il layout fisico dei campi dati di una classe o una struttura in memoria.

SuppressGCTransitionAttribute

Indica che una transizione di Garbage Collection deve essere ignorata quando viene eseguita una chiamata di funzione non gestita.

TypeIdentifierAttribute

Fornisce supporto per l'equivalenza del tipo.

TypeLibConverter

Fornisce un insieme di servizi che convertono un assembly gestito in una libreria dei tipi COM e viceversa.

TypeLibFuncAttribute

Contiene l'oggetto FUNCFLAGS originariamente importato per questo metodo dalla libreria dei tipi COM.

TypeLibImportClassAttribute

Specifica quale oggetto Type utilizza in modo esclusivo un'interfaccia. La classe non può essere ereditata.

TypeLibTypeAttribute

Contiene l'oggetto TYPEFLAGS originariamente importato per questo tipo dalla libreria dei tipi COM.

TypeLibVarAttribute

Contiene l'oggetto VARFLAGS originariamente importato per questo campo dalla libreria dei tipi COM.

TypeLibVersionAttribute

Specifica il numero della versione di una libreria dei tipi esportata.

UnknownWrapper

Esegue il wrapping degli oggetti di cui il gestore di marshalling deve eseguire il marshalling come VT_UNKNOWN.

UnmanagedCallConvAttribute

Specifica la convenzione di chiamata necessaria per chiamare i metodi P/Invoke implementati nel codice non gestito.

UnmanagedCallersOnlyAttribute

Qualsiasi metodo contrassegnato con UnmanagedCallersOnlyAttribute può essere chiamato direttamente dal codice nativo. Il token di funzione può essere caricato in una variabile locale usando l'indirizzo dell'operatore in C# e passato come callback a un metodo nativo.

UnmanagedFunctionPointerAttribute

Controlla il comportamento di marshalling di una firma di delegato passata come un puntatore a una funzione non gestita o da codice non gestito. La classe non può essere ereditata.

VariantWrapper

Esegue il marshalling dei dati di tipo VT_VARIANT | VT_BYREF dal codice gestito al codice non gestito. La classe non può essere ereditata.

WasmImportLinkageAttribute

Fornisce un'ampia gamma di membri che supportano l'interoperabilità COM e i servizi platform invoke. Se non si ha familiarità con questi servizi, vedere Interoperabilità con codice non gestito.

Struct

ArrayWithOffset

Incapsula una matrice e un offset all'interno della matrice specificata.

BIND_OPTS

Usare invece BIND_OPTS.

BINDPTR

Usare invece BINDPTR.

CLong

CLong è un tipo valore non modificabile che rappresenta il long tipo in C e C++. Deve essere usato come tipo di scambio al limite gestito/non gestito per rappresentare in modo accurato le API non gestite del codice gestito che usano il long tipo . Questo tipo ha 32 bit di archiviazione in tutte le piattaforme Windows e piattaforme basate su Unix a 32 bit. Ha 64 bit di archiviazione su piattaforme Unix a 64 bit.

ComWrappers.ComInterfaceDispatch

Interfaccia binaria di un'applicazione per il dispatch di funzioni di un'interfaccia COM.

ComWrappers.ComInterfaceEntry

Tipo di interfaccia e puntatore all'elemento VTable di destinazione.

CONNECTDATA

Usare invece CONNECTDATA.

CULong

CULong è un tipo valore non modificabile che rappresenta il unsigned long tipo in C e C++. Deve essere usato come tipo di scambio al limite gestito/non gestito per rappresentare in modo accurato le API non gestite del codice gestito che usano il unsigned long tipo . Questo tipo ha 32 bit di archiviazione in tutte le piattaforme Windows e piattaforme basate su Unix a 32 bit. Ha 64 bit di archiviazione su piattaforme Unix a 64 bit.

DISPPARAMS

Usare invece DISPPARAMS.

ELEMDESC

Usare invece ELEMDESC.

ELEMDESC.DESCUNION

Usare invece ELEMDESC.DESCUNION.

EXCEPINFO

Usare invece EXCEPINFO.

FILETIME

Usare invece FILETIME.

FUNCDESC

Usare invece FUNCDESC.

GCHandle

Fornisce un modo per accedere a un oggetto gestito da una memoria non gestita.

HandleRef

Esegue il wrapping di un oggetto gestito che contiene un handle a una risorsa passata a un codice non gestito attraverso il platform invoke.

IDLDESC

Usare invece IDLDESC.

NFloat

NFloat è un tipo di valore non modificabile che rappresenta un tipo mobile con le stesse dimensioni dell'intero nativo. È destinato a essere usato come tipo di scambio al limite gestito/non gestito per rappresentare in modo accurato le API non gestite del codice gestito che usano un alias di tipo per le piattaforme C o C++ float su piattaforme a 32 bit o double su piattaforme a 64 bit, ad esempio il tipo CGFloat nelle librerie fornite da Apple.

OSPlatform

Rappresenta una piattaforma del sistema operativo.

PARAMDESC

Usare invece PARAMDESC.

STATSTG

Usare invece STATSTG.

TYPEATTR

Usare invece TYPEATTR.

TYPEDESC

Usare invece TYPEDESC.

TYPELIBATTR

Usare invece TYPELIBATTR.

VARDESC

Usare invece VARDESC.

VARDESC.DESCUNION

Usare invece VARDESC.DESCUNION.

Interfacce

_Activator

Espone la classe Activator a codice non gestito.

_Assembly

Espone i membri pubblici della classe Assembly a codice non gestito.

_AssemblyBuilder

Espone la classe AssemblyBuilder a codice non gestito.

_AssemblyName

Espone la classe AssemblyName a codice non gestito.

_Attribute

Espone la classe Attribute a codice non gestito.

_ConstructorBuilder

Espone la classe ConstructorBuilder a codice non gestito.

_ConstructorInfo

Espone i membri pubblici della classe ConstructorInfo a codice non gestito.

_CustomAttributeBuilder

Espone la classe CustomAttributeBuilder a codice non gestito.

_EnumBuilder

Espone la classe EnumBuilder a codice non gestito.

_EventBuilder

Espone la classe EventBuilder a codice non gestito.

_EventInfo

Espone i membri pubblici della classe EventInfo a codice non gestito.

_Exception

Espone i membri pubblici della classe Exception a codice non gestito.

_FieldBuilder

Espone la classe FieldBuilder a codice non gestito.

_FieldInfo

Espone i membri pubblici della classe FieldInfo a codice non gestito.

_ILGenerator

Espone la classe ILGenerator a codice non gestito.

_LocalBuilder

Espone la classe LocalBuilder a codice non gestito.

_MemberInfo

Espone i membri pubblici della classe MemberInfo a codice non gestito.

_MethodBase

Espone i membri pubblici della classe MethodBase a codice non gestito.

_MethodBuilder

Espone la classe MethodBuilder a codice non gestito.

_MethodInfo

Espone i membri pubblici della classe MethodInfo a codice non gestito.

_MethodRental

Espone la classe MethodRental a codice non gestito.

_Module

Espone la classe Module a codice non gestito.

_ModuleBuilder

Espone la classe ModuleBuilder a codice non gestito.

_ParameterBuilder

Espone la classe ParameterBuilder a codice non gestito.

_ParameterInfo

Espone la classe ParameterInfo a codice non gestito.

_PropertyBuilder

Espone la classe PropertyBuilder a codice non gestito.

_PropertyInfo

Espone i membri pubblici della classe PropertyInfo a codice non gestito.

_SignatureHelper

Espone la classe SignatureHelper a codice non gestito.

_Thread

Espone la classe Thread a codice non gestito.

_Type

Espone i membri pubblici dell'oggettoType a codice non gestito.

_TypeBuilder

Espone la classe TypeBuilder a codice non gestito.

ICustomAdapter

Fornisce un sistema con cui i client possono accedere all'oggetto effettivo, anziché all'oggetto adapter fornito da un gestore di marshalling personalizzato.

ICustomFactory

Consente agli utenti di scrivere il codice di attivazione per gli oggetti gestiti che estendono MarshalByRefObject.

ICustomMarshaler

Fornisce wrapper personalizzati per la gestione delle chiamate a metodi.

ICustomQueryInterface

Consente agli sviluppatori di fornire un'implementazione gestita e personalizzata del metodo IUnknown::QueryInterface(REFIID riid, void **ppvObject).

IDynamicInterfaceCastable

Interfaccia usata per la partecipazione a un errore del cast di tipo.

IRegistrationServices

Fornisce un insieme di servizi per la registrazione e l'annullamento della registrazione di assembly gestiti da utilizzare da COM.

ITypeLibConverter

Fornisce un insieme di servizi che convertono un assembly gestito in una libreria dei tipi COM e viceversa.

ITypeLibExporterNameProvider

Consente di controllare la combinazione di maiuscole e minuscole nei nomi per l'esportazione in una libreria dei tipi.

ITypeLibExporterNotifySink

Fornisce un meccanismo di callback per il convertitore dell'assembly, per informare il chiamante dello stato della conversione e coinvolgerlo nel processo di conversione.

ITypeLibImporterNotifySink

Fornisce un meccanismo di callback per il convertitore della libreria dei tipi, per informare il chiamante dello stato della conversione e coinvolgerlo nel processo di conversione.

UCOMIBindCtx

Usare invece BIND_OPTS.

UCOMIConnectionPoint

Usare invece IConnectionPoint.

UCOMIConnectionPointContainer

Usare invece IConnectionPointContainer.

UCOMIEnumConnectionPoints

Usare invece IEnumConnectionPoints.

UCOMIEnumConnections

Usare invece IEnumConnections.

UCOMIEnumMoniker

Usare invece IEnumMoniker.

UCOMIEnumString

Usare invece IEnumString.

UCOMIEnumVARIANT

Usare invece IEnumVARIANT.

UCOMIMoniker

Usare invece IMoniker.

UCOMIPersistFile

Usare invece IPersistFile.

UCOMIRunningObjectTable

Usare invece IRunningObjectTable.

UCOMIStream

Usare invece IStream.

UCOMITypeComp

Usare invece ITypeComp.

UCOMITypeInfo

Usare invece ITypeInfo.

UCOMITypeLib

Usare invece ITypeLib.

Enumerazioni

Architecture

Indica l'architettura del processore.

AssemblyRegistrationFlags

Definisce un gruppo di flag utilizzati nella registrazione di assembly.

CALLCONV

Usare invece CALLCONV.

CallingConvention

Specifica la convenzione di chiamata necessaria per chiamare i metodi implementati nel codice non gestito.

CharSet

Stabilisce quali stringhe sottoposte a marshalling del set di caratteri devono essere usate.

ClassInterfaceType

Identifica il tipo di interfaccia di classe generata per una classe.

ComInterfaceType

Identifica come esporre un'interfaccia a COM.

ComMemberType

Descrive il tipo di un membro COM.

CreateComInterfaceFlags

Specifica i flag per il metodo GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags).

CreateObjectFlags

Specifica i flag per il metodo GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).

CustomQueryInterfaceMode

Indica se le chiamate del metodo GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) di tipo IUnknown::QueryInterface possono usare l'interfaccia ICustomQueryInterface.

CustomQueryInterfaceResult

Fornisce i valori restituiti dal metodo GetInterface(Guid, IntPtr).

DESCKIND

Usare invece DESCKIND.

DllImportSearchPath

Specifica i percorsi usati per cercare le DLL che forniscono le funzioni per le operazioni platform invoke.

ExporterEventKind

Descrive i callback eseguiti dallo strumento di esportazione della libreria dei tipi durante l'esportazione.

FUNCFLAGS

Usare invece FUNCFLAGS.

FUNCKIND

Usare invece FUNCKIND.

GCHandleType

Rappresenta i tipi di handle che il GCHandle tipo può allocare.

IDispatchImplType

Indica quale implementazione di IDispatch usare per una classe particolare.

IDLFLAG

Usare invece IDLFLAG.

IMPLTYPEFLAGS

Usare invece IMPLTYPEFLAGS.

ImporterEventKind

Descrive i callback eseguiti dall'utilità di importazione della libreria dei tipi durante un'importazione.

INVOKEKIND

Usare invece INVOKEKIND.

LayoutKind

Controlla il layout di un oggetto quando viene esportato in codice non gestito.

LIBFLAGS

Usare invece LIBFLAGS.

PARAMFLAG

Usare invece PARAMFLAG.

PosixSignal

Specifica un numero di segnale POSIX.

RegistrationClassContext

Specifica l'insieme di contesti di esecuzione in cui un oggetto classe verrà reso disponibile per richieste di creazione di istanze.

RegistrationConnectionType

Definisce i tipi di connessioni a un oggetto classe.

StringMarshalling

Specifica la modalità di marshalling delle stringhe per le stringhe generate p/invokes

SYSKIND

Usare invece SYSKIND.

TYPEFLAGS

Usare invece TYPEFLAGS.

TYPEKIND

Usare invece TYPEKIND.

TypeLibExporterFlags

Indica le modalità di produzione di una libreria dei tipi.

TypeLibFuncFlags

Descrive le impostazioni originali dell'oggetto FUNCFLAGS nella libreria dei tipi COM dalla quale questo metodo è stato importato.

TypeLibImporterFlags

Indica le modalità di produzione di un assembly.

TypeLibTypeFlags

Descrive le impostazioni originali dell'oggetto TYPEFLAGS nella libreria dei tipi COM dalla quale il tipo è stato importato.

TypeLibVarFlags

Descrive le impostazioni originali dell'oggetto VARFLAGS nella libreria dei tipi COM dalla quale la variabile è stata importata.

UnmanagedType

Identifica come eseguire il marshalling di parametri o campi nel codice gestito.

VarEnum

Indica le modalità di esecuzione del marshalling degli elementi della matrice quando viene effettuato il marshalling di una matrice da codice gestito a codice non gestito come SafeArray.

VARFLAGS

Usare invece VARFLAGS.

Delegati

DllImportResolver

Specifica un delegato usato per risolvere le librerie native tramite callback.

ObjectCreationDelegate

Crea un oggetto COM.

Commenti

I membri di questo spazio dei nomi forniscono diverse categorie di funzionalità, come illustrato nella tabella seguente. Gli attributi controllano il comportamento di marshalling, ad esempio come disporre strutture o come rappresentare stringhe. Gli attributi più importanti sono DllImportAttribute, che vengono usati per definire metodi di richiamo della piattaforma per l'accesso alle API non gestite e MarshalAsAttribute, che si usa per specificare il marshalling dei dati tra la memoria gestita e non gestita.