Condividi tramite


System.Runtime.InteropServices Spazio dei nomi

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

Classi

AllowReversePInvokeCallsAttribute

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

AutomationProxyAttribute

Specifica se il tipo deve essere sottoposto a marshalling usando il gestore di marshalling di Automazione o un proxy personalizzato e uno stub.

BestFitMappingAttribute

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

BStrWrapper

Effettua il marshalling dei dati di tipo VT_BSTR da codice gestito a codice non gestito. Questa 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 unsafe che fornisce un set di metodi per accedere alle rappresentazioni dei dati sottostanti delle raccolte.

ComAliasNameAttribute

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

ComAwareEventInfo

Consente la registrazione ad associazione tardiva di un gestore eventi.

ComCompatibleVersionAttribute

Indica a un client COM che tutte le classi nella versione corrente di un assembly sono compatibili con le classi in una versione precedente dell'assembly.

ComConversionLossAttribute

Indica che le informazioni sono state perse su una classe o un'interfaccia quando è stata importata da una libreria dei tipi a un assembly.

ComDefaultInterfaceAttribute

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

ComEventInterfaceAttribute

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

ComEventsHelper

Fornisce metodi che consentono ai delegati .NET di gestire gli eventi da aggiungere e rimuovere dagli oggetti COM.

COMException

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

ComImportAttribute

Indica che il tipo con attributi è stato definito in precedenza in COM.

ComRegisterFunctionAttribute

Specifica il metodo da chiamare quando si registra un assembly da utilizzare da COM; ciò consente l'esecuzione di codice scritto dall'utente durante il processo di registrazione.

ComSourceInterfacesAttribute

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

ComUnregisterFunctionAttribute

Specifica il metodo da chiamare quando si annulla la registrazione di un assembly da utilizzare da COM; ciò consente l'esecuzione di codice scritto dall'utente durante il processo di annullamento della registrazione.

ComVisibleAttribute

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

ComWrappers

Classe per la gestione dei wrapper dei tipi COM IUnknown.

CriticalHandle

Rappresenta una classe wrapper per gestire le risorse.

CurrencyWrapper

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

DefaultCharSetAttribute

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

DefaultDllImportSearchPathsAttribute

Specifica i percorsi usati per la ricerca di DLL che forniscono funzioni per le chiamate della piattaforma.

DefaultParameterValueAttribute

Imposta il valore predefinito di un parametro quando viene chiamato da una lingua che supporta i parametri predefiniti. Questa classe non può essere ereditata.

DispatchWrapper

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

DispIdAttribute

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

DllImportAttribute

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

DynamicInterfaceCastableImplementationAttribute

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

ErrorWrapper

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

ExtensibleClassFactory

Abilita la personalizzazione di oggetti gestiti che si estendono da oggetti non gestiti durante la creazione.

ExternalException

Tipo di eccezione di base per tutte le eccezioni di interoperabilità COM e le eccezioni di gestione delle eccezioni strutturate (SEH).

FieldOffsetAttribute

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

GuidAttribute

Fornisce un Guid esplicito quando un GUID automatico è indesiderato.

HandleCollector

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

IDispatchImplAttribute

Indica quale IDispatch'implementazione utilizzata da Common Language Runtime quando si espongono interfacce e differenze duali a COM.

ImmutableCollectionsMarshal

Classe unsafe 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 originariamente definiti in una libreria dei tipi.

InAttribute

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

InterfaceTypeAttribute

Indica se un'interfaccia gestita è doppia, solo dispatch o IUnknown -only quando viene esposta a COM.

InvalidComObjectException

Eccezione generata quando viene utilizzato un oggetto COM non valido.

InvalidOleVariantTypeException

Eccezione generata dal gestore di marshalling quando rileva un argomento di un tipo variant che non può essere sottoposto a marshalling al codice gestito.

JsonMarshal

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

LCIDConversionAttribute

Indica che la firma non gestita di un metodo prevede un parametro LCID (Locale Identifier).

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 degli stub di interoperabilità in scenari di interoperabilità da gestito a COM.

Marshal

Fornisce una raccolta di metodi per l'allocazione di memoria non gestita, la copia di blocchi di memoria non gestiti e la conversione in tipi non gestiti, nonché altri metodi esterni utilizzati durante l'interazione con codice non gestito.

MarshalAsAttribute

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

MarshalDirectiveException

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

MemoryMarshal

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

NativeLibrary

Fornisce 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 eseguito dal chiamato al chiamante.

PosixSignalContext

Fornisce dati per un evento PosixSignalRegistration.

PosixSignalRegistration

Gestisce un PosixSignal.

PreserveSigAttribute

Indica che la trasformazione della firma HRESULT che viene eseguita 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 set di servizi per la registrazione e l'annullamento della registrazione di assembly gestiti da COM.

RuntimeEnvironment

Fornisce una raccolta di metodi static che restituiscono informazioni sull'ambiente Common Language Runtime.

RuntimeInformation

Fornisce informazioni sull'installazione del runtime .NET.

SafeArrayRankMismatchException

Eccezione generata quando la classificazione di un SAFEARRAY in ingresso non corrisponde alla classificazione specificata nella firma gestita.

SafeArrayTypeMismatchException

Eccezione generata quando il tipo del SAFEARRAY in ingresso non corrisponde al tipo specificato nella firma gestita.

SafeBuffer

Fornisce un buffer di memoria controllato che può essere utilizzato per la lettura e la scrittura. I tentativi di accedere alla memoria all'esterno del buffer controllato (sottorun e sovraccarichi) generano eccezioni.

SafeHandle

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

SEHException

Rappresenta gli errori seh (Structured Exception Handling).

SequenceMarshal

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

SetWin32ContextInIDispatchAttribute

Questo attributo è stato deprecato.

StandardOleMarshalObject

Sostituisce il gestore di marshalling senza thread (CLR) standard con il gestore di marshalling OLE STA standard.

StructLayoutAttribute

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

SuppressGCTransitionAttribute

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

TypeIdentifierAttribute

Fornisce supporto per l'equivalenza del tipo.

TypeLibConverter

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

TypeLibFuncAttribute

Contiene le FUNCFLAGS importate originariamente per questo metodo dalla libreria dei tipi COM.

TypeLibImportClassAttribute

Specifica quale Type usa esclusivamente un'interfaccia. Questa classe non può essere ereditata.

TypeLibTypeAttribute

Contiene le TYPEFLAGS importate originariamente per questo tipo dalla libreria dei tipi COM.

TypeLibVarAttribute

Contiene le VARFLAGS importate originariamente per questo campo dalla libreria dei tipi COM.

TypeLibVersionAttribute

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

UnknownWrapper

Esegue il wrapping degli oggetti che 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'operatore address-of in C# e passato come callback a un metodo nativo.

UnmanagedFunctionPointerAttribute

Controlla il comportamento di marshalling di una firma del delegato passato come puntatore di funzione non gestito a o da codice non gestito. Questa classe non può essere ereditata.

VariantWrapper

Effettua il marshalling dei dati di tipo VT_VARIANT | VT_BYREF da codice gestito a codice non gestito. Questa classe non può essere ereditata.

WasmImportLinkageAttribute

Specifica che il P/Invoke contrassegnato con questo attributo deve essere collegato come importazione WASM.

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 tipo di long 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 tipo di long. Questo tipo ha 32 bit di archiviazione in tutte le piattaforme Windows e piattaforme unix a 32 bit. Ha 64 bit di archiviazione su piattaforme Unix a 64 bit.

ComWrappers.ComInterfaceDispatch

Interfaccia binaria dell'applicazione per l'invio di funzioni di un'interfaccia COM.

ComWrappers.ComInterfaceEntry

Tipo di interfaccia e puntatore alla VTable di destinazione.

CONNECTDATA

Usare invece CONNECTDATA.

CULong

CULong è un tipo valore non modificabile che rappresenta il tipo di unsigned long 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 tipo di unsigned long. Questo tipo ha 32 bit di archiviazione in tutte le piattaforme Windows e piattaforme 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 dalla memoria non gestita.

HandleRef

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

IDLDESC

Usare invece IDLDESC.

NFloat

NFloat è un tipo valore non modificabile che rappresenta un tipo mobile con le stesse dimensioni dell'intero nativo. È progettato per 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 il float C o C++ 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 al codice non gestito.

_Assembly

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

_AssemblyBuilder

Espone la classe AssemblyBuilder al codice non gestito.

_AssemblyName

Espone la classe AssemblyName al codice non gestito.

_Attribute

Espone la classe Attribute al codice non gestito.

_ConstructorBuilder

Espone la classe ConstructorBuilder al codice non gestito.

_ConstructorInfo

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

_CustomAttributeBuilder

Espone la classe CustomAttributeBuilder al codice non gestito.

_EnumBuilder

Espone la classe EnumBuilder al codice non gestito.

_EventBuilder

Espone la classe EventBuilder al codice non gestito.

_EventInfo

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

_Exception

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

_FieldBuilder

Espone la classe FieldBuilder al codice non gestito.

_FieldInfo

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

_ILGenerator

Espone la classe ILGenerator al codice non gestito.

_LocalBuilder

Espone la classe LocalBuilder al codice non gestito.

_MemberInfo

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

_MethodBase

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

_MethodBuilder

Espone la classe MethodBuilder al codice non gestito.

_MethodInfo

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

_MethodRental

Espone la classe MethodRental al codice non gestito.

_Module

Espone la classe Module al codice non gestito.

_ModuleBuilder

Espone la classe ModuleBuilder al codice non gestito.

_ParameterBuilder

Espone la classe ParameterBuilder al codice non gestito.

_ParameterInfo

Espone la classe ParameterInfo al codice non gestito.

_PropertyBuilder

Espone la classe PropertyBuilder al codice non gestito.

_PropertyInfo

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

_SignatureHelper

Espone la classe SignatureHelper al codice non gestito.

_Thread

Espone la classe Thread al codice non gestito.

_Type

Espone i membri pubblici della classe Type al codice non gestito.

_TypeBuilder

Espone la classe TypeBuilder al codice non gestito.

ICustomAdapter

Consente ai client di accedere all'oggetto effettivo anziché all'oggetto adapter distribuito da un gestore di marshalling personalizzato.

ICustomFactory

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

ICustomMarshaler

Fornisce wrapper personalizzati per la gestione delle chiamate ai metodi.

ICustomQueryInterface

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

IDynamicInterfaceCastable

Interfaccia usata per partecipare a un errore di cast del tipo.

IRegistrationServices

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

ITypeLibConverter

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

ITypeLibExporterNameProvider

Fornisce il controllo sulla combinazione di maiuscole e minuscole di nomi quando viene esportata in una libreria dei tipi.

ITypeLibExporterNotifySink

Fornisce un meccanismo di callback per il convertitore di assembly per informare il chiamante dello stato della conversione e coinvolgere il chiamante nel processo di conversione stesso.

ITypeLibImporterNotifySink

Fornisce un meccanismo di callback per il convertitore di librerie dei tipi per informare il chiamante dello stato della conversione e coinvolgere il chiamante nel processo di conversione stesso.

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 set di flag utilizzati per la registrazione di assembly.

CALLCONV

Usare invece CALLCONV.

CallingConvention

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

CharSet

Determina quale set di caratteri deve usare per le stringhe con marshalling.

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 IUnknown::QueryInterface possono usare l'interfaccia .

CustomQueryInterfaceResult

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

DESCKIND

Usare invece DESCKIND.

DllImportSearchPath

Specifica i percorsi usati per la ricerca di DLL che forniscono funzioni per le chiamate della piattaforma.

ExporterEventKind

Descrive i callback usata dall'utilità di esportazione della libreria dei tipi durante l'esportazione di una libreria dei tipi.

FUNCFLAGS

Usare invece FUNCFLAGS.

FUNCKIND

Usare invece FUNCKIND.

GCHandleType

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

IDispatchImplType

Indica quale IDispatch'implementazione da usare per una determinata classe.

IDLFLAG

Usare invece IDLFLAG.

IMPLTYPEFLAGS

Usare invece IMPLTYPEFLAGS.

ImporterEventKind

Descrive i callback usata dall'utilità di importazione della libreria dei tipi durante l'importazione di una libreria dei tipi.

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 il set di contesti di esecuzione in cui verrà reso disponibile un oggetto classe per le richieste di costruzione di istanze.

RegistrationConnectionType

Definisce i tipi di connessioni a un oggetto classe.

StringMarshalling

Specifica la modalità di marshalling delle stringhe per i p/invoke generati

SYSKIND

Usare invece SYSKIND.

TYPEFLAGS

Usare invece TYPEFLAGS.

TYPEKIND

Usare invece TYPEKIND.

TypeLibExporterFlags

Indica come deve essere prodotta una libreria dei tipi.

TypeLibFuncFlags

Descrive le impostazioni originali del FUNCFLAGS nella libreria dei tipi COM da cui è stato importato questo metodo.

TypeLibImporterFlags

Indica come deve essere prodotto un assembly.

TypeLibTypeFlags

Descrive le impostazioni originali del TYPEFLAGS nella libreria dei tipi COM da cui è stato importato il tipo.

TypeLibVarFlags

Descrive le impostazioni originali del VARFLAGS nella libreria dei tipi COM da cui è stata importata la variabile.

UnmanagedType

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

VarEnum

Indica come effettuare il marshalling degli elementi della matrice quando viene eseguito il marshalling di una matrice da codice gestito a codice non gestito come SafeArray.

VARFLAGS

Usare invece VARFLAGS.

Delegati

DllImportResolver

Fornisce 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 le strutture o come rappresentare le stringhe. Gli attributi più importanti sono DllImportAttribute, che vengono usati per definire i metodi platform invoke per l'accesso alle API non gestite e MarshalAsAttribute, che viene usato per specificare il marshalling dei dati tra la memoria gestita e quella non gestita.