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.

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).

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 l'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 utilizzati 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 oggetto PosixSignal .

PreserveSigAttribute

Indica che la trasformazione della firma HRESULT 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 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 effettuata 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

Fornisce un equivalente a UnmanagedCallersOnlyAttribute per le funzioni native dichiarate in .NET.

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 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.

Struct

ArrayWithOffset

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

BIND_OPTS

In alternativa, utilizzare BIND_OPTS.

BINDPTR

In alternativa, utilizzare BINDPTR.

CLong

CLong è un tipo valore non modificabile che rappresenta il tipo long in C e C++. Deve essere usato come tipo di scambio al limite gestito/non gestito per rappresentare in modo accurato nelle API non gestite del codice gestito che usano il tipo long. Questo tipo dispone di 32 bit di archiviazione in tutte Windows e nelle piattaforme a 32 bit basate su Unix. 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

In alternativa, utilizzare CONNECTDATA.

CULong

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

DISPPARAMS

In alternativa, utilizzare DISPPARAMS.

ELEMDESC

In alternativa, utilizzare ELEMDESC.

ELEMDESC.DESCUNION

In alternativa, utilizzare ELEMDESC.DESCUNION.

EXCEPINFO

In alternativa, utilizzare EXCEPINFO.

FILETIME

In alternativa, utilizzare FILETIME.

FUNCDESC

In alternativa, utilizzare 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

In alternativa, utilizzare IDLDESC.

NFloat

NFloat è un tipo valore non modificabile che rappresenta un tipo a virgola mobile con le stesse dimensioni dell'intero nativo. Deve essere usato come tipo di scambio al limite gestito/non gestito per rappresentare in modo accurato nelle API non gestite del codice gestito che usano un alias di tipo per C o float di 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

In alternativa, utilizzare PARAMDESC.

STATSTG

In alternativa, utilizzare STATSTG.

TYPEATTR

In alternativa, utilizzare TYPEATTR.

TYPEDESC

In alternativa, utilizzare TYPEDESC.

TYPELIBATTR

In alternativa, utilizzare TYPELIBATTR.

VARDESC

In alternativa, utilizzare VARDESC.

VARDESC.DESCUNION

In alternativa, utilizzare 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

In alternativa, utilizzare BIND_OPTS.

UCOMIConnectionPoint

In alternativa, utilizzare IConnectionPoint.

UCOMIConnectionPointContainer

In alternativa, utilizzare IConnectionPointContainer.

UCOMIEnumConnectionPoints

In alternativa, utilizzare IEnumConnectionPoints.

UCOMIEnumConnections

In alternativa, utilizzare IEnumConnections.

UCOMIEnumMoniker

In alternativa, utilizzare IEnumMoniker.

UCOMIEnumString

In alternativa, utilizzare IEnumString.

UCOMIEnumVARIANT

In alternativa, utilizzare IEnumVARIANT.

UCOMIMoniker

In alternativa, utilizzare IMoniker.

UCOMIPersistFile

In alternativa, utilizzare IPersistFile.

UCOMIRunningObjectTable

In alternativa, utilizzare IRunningObjectTable.

UCOMIStream

In alternativa, utilizzare IStream.

UCOMITypeComp

In alternativa, utilizzare ITypeComp.

UCOMITypeInfo

In alternativa, utilizzare ITypeInfo.

UCOMITypeLib

In alternativa, utilizzare ITypeLib.

Enumerazioni

Architecture

Indica l'architettura del processore.

AssemblyRegistrationFlags

Definisce un gruppo di flag utilizzati nella registrazione di assembly.

CALLCONV

In alternativa, utilizzare 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

In alternativa, utilizzare 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

In alternativa, utilizzare FUNCFLAGS.

FUNCKIND

In alternativa, utilizzare FUNCKIND.

GCHandleType

Rappresenta i tipi di handle che la classe GCHandle può allocare.

IDispatchImplType

Indica quale implementazione di IDispatch usare per una classe particolare.

IDLFLAG

In alternativa, utilizzare IDLFLAG.

IMPLTYPEFLAGS

In alternativa, utilizzare IMPLTYPEFLAGS.

ImporterEventKind

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

INVOKEKIND

In alternativa, utilizzare INVOKEKIND.

LayoutKind

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

LIBFLAGS

In alternativa, utilizzare LIBFLAGS.

PARAMFLAG

In alternativa, utilizzare 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.

SYSKIND

In alternativa, utilizzare SYSKIND.

TYPEFLAGS

In alternativa, utilizzare TYPEFLAGS.

TYPEKIND

In alternativa, utilizzare 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

In alternativa, utilizzare 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 le strutture o come rappresentare le stringhe. Gli attributi più importanti sono DllImportAttribute , che è possibile usare per definire Platform Invoke metodi per l'accesso alle API non gestite e MarshalAsAttribute , che è possibile usare per specificare la modalità di marshalling dei dati tra la memoria gestita e quella non gestita.