System.Runtime.InteropServices Espace de noms

Fournit un large éventail de membres qui prennent en charge COM Interop et les services d'appel de code non managé. Si vous n’êtes pas familiarisé avec ces services, consultez Interopération avec du code non managé.

Classes

AllowReversePInvokeCallsAttribute

Permet à une méthode non managée d’appeler une méthode managée.

AutomationProxyAttribute

Indique si le type doit être marshalé en utilisant Automation Marshaler ou un proxy et un stub personnalisés.

BestFitMappingAttribute

Détermine si les caractères Unicode sont convertis en caractères ANSI équivalents les plus proches.

BStrWrapper

Marshale des données de type VT_BSTR de code managé en code non managé. Cette classe ne peut pas être héritée.

ClassInterfaceAttribute

Indique le type d'interface de classe à générer pour une classe exposée à COM, si une interface est effectivement générée.

CoClassAttribute

Spécifie l'identificateur de classe d'une coclasse importée à partir d'une bibliothèque de types.

CollectionsMarshal

Classe non sécurisé qui fournit un ensemble de méthodes pour accéder aux représentations de données sous-jacentes des collections.

ComAliasNameAttribute

Indique l’alias COM pour un type de paramètre ou de champ.

ComAwareEventInfo

Autorise l’inscription à liaison tardive d’un gestionnaire d’événements.

ComCompatibleVersionAttribute

Indique à un client COM que toutes les classes de la version actuelle d'un assembly sont compatibles avec les classes d'une version précédente de l'assembly.

ComConversionLossAttribute

Indique que des informations se rapportant à une classe ou à une interface ont été perdues lors de l’importation d’une bibliothèque de types vers un assembly.

ComDefaultInterfaceAttribute

Spécifie une interface par défaut à exposer à COM. Cette classe ne peut pas être héritée.

ComEventInterfaceAttribute

Identifie l'interface source et la classe implémentant les méthodes de l'interface d'événement qui est générée quand une coclasse est importée à partir d'une bibliothèque de types COM.

ComEventsHelper

Fournit des méthodes qui permettent d'ajouter et de supprimer d’objets COM des délégués .NET qui gèrent des événements.

COMException

Exception levée quand un HRESULT non reconnu est retourné d'un appel de méthode COM.

ComImportAttribute

Indique que le type avec attributs a déjà été défini dans COM.

ComRegisterFunctionAttribute

Spécifie la méthode à appeler quand vous inscrivez un assembly pour utilisation à partir de COM ; cela permet l'exécution de code écrit par l'utilisateur pendant le processus d'inscription.

ComSourceInterfacesAttribute

Identifie une liste d'interfaces qui sont exposées en tant que sources d'événements COM pour la classe avec attributs.

ComUnregisterFunctionAttribute

Spécifie la méthode à appeler quand vous annulez l'inscription d'un assembly pour utilisation à partir de COM ; cela permet l'exécution de code écrit par l'utilisateur pendant le processus d'annulation d'inscription.

ComVisibleAttribute

Contrôle l'accessibilité à COM d'un membre ou type managé spécifique, ou de tous les types dans un assembly.

ComWrappers

Classe pour la gestion des wrappers de types COM IUnknown.

CriticalHandle

Représente une classe wrapper pour les ressources de handle.

CurrencyWrapper

Encapsule des objets que le marshaleur doit marshaler comme VT_CY.

DefaultCharSetAttribute

Spécifie la valeur de l’énumération CharSet. Cette classe ne peut pas être héritée.

DefaultDllImportSearchPathsAttribute

Spécifie les chemins d'accès utilisés pour rechercher les DLL qui fournissent des fonctions pour les appels de plateforme.

DefaultParameterValueAttribute

Définit la valeur par défaut d'un paramètre quand il est appelé à partir d'un langage qui prend en charge les paramètres par défaut. Cette classe ne peut pas être héritée.

DispatchWrapper

Encapsule des objets que le marshaleur doit marshaler comme VT_DISPATCH.

DispIdAttribute

Spécifie l'identificateur de distribution COM (DISPID) d'une méthode, d'un champ ou d'une propriété.

DllImportAttribute

Indique que la méthode avec attributs est exposée par une bibliothèque de liens dynamiques (DLL) non managée comme point d'entrée statique.

DynamicInterfaceCastableImplementationAttribute

Attribut exigé par tout type retourné par GetInterfaceImplementation(RuntimeTypeHandle).

ErrorWrapper

Encapsule des objets que le marshaleur doit marshaler comme VT_ERROR.

ExtensibleClassFactory

Permet la personnalisation d'objets managés qui sont des extensions d'objets non managés lors de la création.

ExternalException

Type d'exception de base pour toutes les exceptions COM Interop et les exceptions SEH (Structured Exception Handling).

FieldOffsetAttribute

Indique la position physique des champs dans la représentation non managée d'une classe ou structure.

GuidAttribute

Fournit un Guid explicite quand un GUID automatique n’est pas souhaité.

HandleCollector

Effectue le suivi des handles en attente et force un garbage collection quand le seuil spécifié est atteint.

IDispatchImplAttribute

Indique l'implémentation IDispatch utilisée par le Common Language Runtime lors de l'exposition d'une interface double ou dispinterface à COM.

ImportedFromTypeLibAttribute

Indique que les types définis dans un assembly ont été définis dans une bibliothèque de types à l'origine.

InAttribute

Indique que les données doivent être marshalées de l'appelant vers l'appelé, mais pas de nouveau vers l'appelant.

InterfaceTypeAttribute

Indique si une interface managée est double, de dispatch uniquement ou IUnknown uniquement lorsqu'elle est exposée à COM.

InvalidComObjectException

Exception levée lorsqu'un objet COM non valide est utilisé.

InvalidOleVariantTypeException

Exception levée par le marshaleur quand il rencontre un argument dont le type de variante ne peut pas être marshalé en code managé.

LCIDConversionAttribute

Indique que la signature non managée d'une méthode attend un paramètre LCID (Locale Identifier, identificateur de paramètres régionaux).

ManagedToNativeComInteropStubAttribute

Prend en charge la personnalisation par l'utilisateur des stubs d'interopérabilité dans les scénarios COM Interop managés.

Marshal

Fournit une collection de méthodes pour l’allocation de mémoire non managée, la copie de blocs de mémoire non managée et la conversion de types managés en types non managés, ainsi que diverses autres méthodes utilisées lors de l’interaction avec du code non managé.

MarshalAsAttribute

Indique comment marshaler les données entre du code managé et du code non managé.

MarshalDirectiveException

Exception qui est levée par le marshaleur quand il rencontre un MarshalAsAttribute qu'il ne prend pas en charge.

MemoryMarshal

Fournit des méthodes pour interagir avec Memory<T>, ReadOnlyMemory<T>, Span<T> et ReadOnlySpan<T>.

NativeLibrary

Fournit des API pour la gestion des bibliothèques natives.

NativeMemory

Cette classe contient des méthodes qui sont principalement utilisées pour gérer la mémoire native.

OptionalAttribute

Indique qu'un paramètre est facultatif.

OutAttribute

Indique que les données doivent être marshalées depuis l'appelé vers l'appelant.

PosixSignalContext

Fournit des données pour un PosixSignalRegistration événement.

PosixSignalRegistration

Gère un PosixSignal .

PreserveSigAttribute

Indique que la transformation de signature HRESULT qui a lieu pendant les appels de COM Interop doit être supprimée.

PrimaryInteropAssemblyAttribute

Indique que l'assembly avec attributs est un assembly PIA (Primary Interop Assembly).

ProgIdAttribute

Permet à l'utilisateur de spécifier le ProgID d'une classe.

RegistrationServices

Fournit un ensemble de services pour inscrire et désinscrire des assemblys managés à utiliser dans COM.

RuntimeEnvironment

Fournit une collection de méthodes static qui retournent des informations sur l’environnement du Common Language Runtime.

RuntimeInformation

Fournit des informations sur l’installation du runtime .NET.

SafeArrayRankMismatchException

Exception levée lorsque le rang d'un SAFEARRAY entrant ne correspond pas au rang spécifié dans la signature managée.

SafeArrayTypeMismatchException

Exception levée lorsque le type du SAFEARRAY entrant ne correspond pas au type spécifié dans la signature managée.

SafeBuffer

Fournit une mémoire tampon contrôlée qui peut être utilisée pour la lecture et l'écriture. Toute tentative d'accès à la mémoire en dehors de la mémoire tampon contrôlée (sous-utilisation et dépassement) entraîne la levée d'exceptions.

SafeHandle

Représente une classe wrapper pour des handles de système d'exploitation. Cette classe doit être héritée.

SEHException

Représente des erreurs SEH (Structured Exception Handling).

SequenceMarshal

Fournit une collection de méthodes pour l’interopérabilité avec ReadOnlySequence<T>.

SetWin32ContextInIDispatchAttribute

Cet attribut est déprécié.

StandardOleMarshalObject

Remplace le marshaleur libre de threads (FTM) standard du Common Language Runtime par le marshaleur STA OLE standard.

StructLayoutAttribute

Vous permet de contrôler la disposition physique des champs de données d'une classe ou d'une structure en mémoire.

SuppressGCTransitionAttribute

Indique qu’une transition de garbage collection doit être ignorée lorsqu’un appel de fonction non managée est effectué.

TypeIdentifierAttribute

Fournit la prise en charge de l'équivalence de type.

TypeLibConverter

Fournit un ensemble de services qui convertissent un assembly managé en bibliothèque de types COM, et inversement.

TypeLibFuncAttribute

Contient les FUNCFLAGS importés à l'origine pour cette méthode à partir de la bibliothèque de types COM.

TypeLibImportClassAttribute

Spécifie le Type qui utilise une interface en mode exclusif. Cette classe ne peut pas être héritée.

TypeLibTypeAttribute

Contient les TYPEFLAGS importés à l’origine pour ce type depuis la bibliothèque de types COM.

TypeLibVarAttribute

Contient les VARFLAGS importés à l'origine pour ce champ à partir de la bibliothèque de types COM.

TypeLibVersionAttribute

Spécifie le numéro de version d'une bibliothèque de types exportée.

UnknownWrapper

Encapsule des objets que le marshaleur doit marshaler comme VT_UNKNOWN.

UnmanagedCallConvAttribute

Fournit un équivalent à UnmanagedCallersOnlyAttribute pour les fonctions natives déclarées dans .net.

UnmanagedCallersOnlyAttribute

Toute méthode marquée avec UnmanagedCallersOnlyAttribute peut être directement appelée à partir du code natif. Le jeton de fonction peut être chargé dans une variable locale à l’aide de l’opérateur C# address-of et passé comme rappel à une méthode native.

UnmanagedFunctionPointerAttribute

Contrôle le comportement de marshaling d'une signature de délégué passée comme pointeur de fonction non managée vers ou depuis du code non managé. Cette classe ne peut pas être héritée.

VariantWrapper

Marshale des données de type VT_VARIANT | VT_BYREF de code managé en code non managé. Cette classe ne peut pas être héritée.

Structures

ArrayWithOffset

Encapsule un tableau et un offset dans le tableau spécifié.

BIND_OPTS

Utilisez plutôt BIND_OPTS.

BINDPTR

Utilisez plutôt BINDPTR.

CLong

CLong est un type de valeur immuable qui représente le type long en C et C++. Il est destiné à être utilisé comme type d’échange au niveau de la limite managée/non managée pour représenter précisément dans les API non managées du code managé qui utilisent le type long . ce type dispose de 32 bits de stockage sur toutes les plateformes Windows et sur les plateformes Unix 32 bits. Il dispose de 64 bits de stockage sur les plateformes UNIX 64 bits.

ComWrappers.ComInterfaceDispatch

Interface binaire d’application pour la répartition de fonctions d’une interface COM.

ComWrappers.ComInterfaceEntry

Type d’interface et pointeur vers la VTable ciblée.

CONNECTDATA

Utilisez plutôt CONNECTDATA.

CULong

CULong est un type de valeur immuable qui représente le type long non signé en C et C++. Il est destiné à être utilisé comme type d’échange au niveau de la limite managée/non managée pour représenter précisément dans les API non managées du code managé qui utilisent le type long non signé . ce type dispose de 32 bits de stockage sur toutes les plateformes Windows et sur les plateformes Unix 32 bits. Il dispose de 64 bits de stockage sur les plateformes UNIX 64 bits.

DISPPARAMS

Utilisez plutôt DISPPARAMS.

ELEMDESC

Utilisez plutôt ELEMDESC.

ELEMDESC.DESCUNION

Utilisez plutôt ELEMDESC.DESCUNION.

EXCEPINFO

Utilisez plutôt EXCEPINFO.

FILETIME

Utilisez plutôt FILETIME.

FUNCDESC

Utilisez plutôt FUNCDESC.

GCHandle

Fournit un moyen d'accéder à un objet managé à partir d'une mémoire non managée.

HandleRef

Inclut dans un wrapper un objet managé contenant un handle vers une ressource transmise au code non managé à l’aide de l’appel de code non managé.

IDLDESC

Utilisez plutôt IDLDESC.

NFloat

NFloat est un type de valeur immuable qui représente un type flottant qui a la même taille que la taille d’entier native. Il est destiné à être utilisé comme un type d’échange au niveau de la limite managée/non managée pour représenter précisément dans les API non managées du code managé qui utilisent un alias de type pour la valeur float de C ou C++ sur les plateformes 32 bits ou double sur les plateformes 64 bits, telles que le type CGFloat dans les bibliothèques fournies par Apple.

OSPlatform

Représente une plateforme de système d’exploitation.

PARAMDESC

Utilisez plutôt PARAMDESC.

STATSTG

Utilisez plutôt STATSTG.

TYPEATTR

Utilisez plutôt TYPEATTR.

TYPEDESC

Utilisez plutôt TYPEDESC.

TYPELIBATTR

Utilisez plutôt TYPELIBATTR.

VARDESC

Utilisez plutôt VARDESC.

VARDESC.DESCUNION

Utilisez plutôt VARDESC.DESCUNION.

Interfaces

_Activator

Expose la classe Activator au code non managé.

_Assembly

Expose les membres publics de la classe Assembly au code non managé.

_AssemblyBuilder

Expose la classe AssemblyBuilder au code non managé.

_AssemblyName

Expose la classe AssemblyName au code non managé.

_Attribute

Expose la classe Attribute au code non managé.

_ConstructorBuilder

Expose la classe ConstructorBuilder au code non managé.

_ConstructorInfo

Expose les membres publics de la classe ConstructorInfo au code non managé.

_CustomAttributeBuilder

Expose la classe CustomAttributeBuilder au code non managé.

_EnumBuilder

Expose la classe EnumBuilder au code non managé.

_EventBuilder

Expose la classe EventBuilder au code non managé.

_EventInfo

Expose les membres publics de la classe EventInfo au code non managé.

_Exception

Expose les membres publics de la classe Exception au code non managé.

_FieldBuilder

Expose la classe FieldBuilder au code non managé.

_FieldInfo

Expose les membres publics de la classe FieldInfo au code non managé.

_ILGenerator

Expose la classe ILGenerator au code non managé.

_LocalBuilder

Expose la classe LocalBuilder au code non managé.

_MemberInfo

Expose les membres publics de la classe MemberInfo au code non managé.

_MethodBase

Expose les membres publics de la classe MethodBase au code non managé.

_MethodBuilder

Expose la classe MethodBuilder au code non managé.

_MethodInfo

Expose les membres publics de la classe MethodInfo au code non managé.

_MethodRental

Expose la classe MethodRental au code non managé.

_Module

Expose la classe Module au code non managé.

_ModuleBuilder

Expose la classe ModuleBuilder au code non managé.

_ParameterBuilder

Expose la classe ParameterBuilder au code non managé.

_ParameterInfo

Expose la classe ParameterInfo au code non managé.

_PropertyBuilder

Expose la classe PropertyBuilder au code non managé.

_PropertyInfo

Expose les membres publics de la classe PropertyInfo au code non managé.

_SignatureHelper

Expose la classe SignatureHelper au code non managé.

_Thread

Expose la classe Thread au code non managé.

_Type

Expose les membres publics de la classe Type au code non managé.

_TypeBuilder

Expose la classe TypeBuilder au code non managé.

ICustomAdapter

Permet aux clients d’accéder à l’objet réel, plutôt qu’à l’objet adaptateur fourni par un marshaleur personnalisé.

ICustomFactory

Permet aux utilisateurs d'écrire un code d'activation pour des objets managés qui étendent MarshalByRefObject.

ICustomMarshaler

Fournit des wrappers personnalisés permettant de gérer les appels de méthodes.

ICustomQueryInterface

Permet aux développeurs de fournir une implémentation managée et personnalisée de la méthode IUnknown::QueryInterface(REFIID riid, void **ppvObject).

IDynamicInterfaceCastable

Interface utilisée pour participer à un échec de conversion de type.

IRegistrationServices

Fournit un ensemble de services pour inscrire et désinscrire des assemblys managés à utiliser dans COM.

ITypeLibConverter

Fournit un ensemble de services qui convertissent un assembly managé en bibliothèque de types COM, et inversement.

ITypeLibExporterNameProvider

Assure un contrôle sur la casse de noms lors de l'exportation dans une bibliothèque de types.

ITypeLibExporterNotifySink

Fournit un mécanisme de rappel pour le convertisseur d'assembly afin d'informer l'appelant de l'état de la conversion, et impliquer l'appelant dans le processus de conversion.

ITypeLibImporterNotifySink

Fournit un mécanisme de rappel pour le convertisseur de bibliothèque de types afin d'informer l'appelant de l'état de la conversion, et impliquer l'appelant dans le processus de conversion lui-même.

UCOMIBindCtx

Utilisez plutôt BIND_OPTS.

UCOMIConnectionPoint

Utilisez plutôt IConnectionPoint.

UCOMIConnectionPointContainer

Utilisez plutôt IConnectionPointContainer.

UCOMIEnumConnectionPoints

Utilisez plutôt IEnumConnectionPoints.

UCOMIEnumConnections

Utilisez plutôt IEnumConnections.

UCOMIEnumMoniker

Utilisez plutôt IEnumMoniker.

UCOMIEnumString

Utilisez plutôt IEnumString.

UCOMIEnumVARIANT

Utilisez plutôt IEnumVARIANT.

UCOMIMoniker

Utilisez plutôt IMoniker.

UCOMIPersistFile

Utilisez plutôt IPersistFile.

UCOMIRunningObjectTable

Utilisez plutôt IRunningObjectTable.

UCOMIStream

Utilisez plutôt IStream.

UCOMITypeComp

Utilisez plutôt ITypeComp.

UCOMITypeInfo

Utilisez plutôt ITypeInfo.

UCOMITypeLib

Utilisez plutôt ITypeLib.

Énumérations

Architecture

Indique l’architecture de processeur.

AssemblyRegistrationFlags

Définit un jeu d'indicateurs utilisés lors de l'inscription d'assemblys.

CALLCONV

Utilisez plutôt CALLCONV.

CallingConvention

Spécifie la convention d’appel nécessaire pour appeler des méthodes implémentées dans du code non managé.

CharSet

Détermine les chaînes marshalées de jeu de caractères à utiliser.

ClassInterfaceType

Identifie le type d'interface de classe qui est généré pour une classe.

ComInterfaceType

Identifie comment exposer une interface à COM.

ComMemberType

Décrit le type d'un membre COM.

CreateComInterfaceFlags

Spécifie les indicateurs de la méthode GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags).

CreateObjectFlags

Spécifie les indicateurs de la méthode GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).

CustomQueryInterfaceMode

Indique si les appels IUnknown::QueryInterface de la méthode GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) peuvent utiliser l’interface ICustomQueryInterface.

CustomQueryInterfaceResult

Fournit des valeurs de retour pour la méthode GetInterface(Guid, IntPtr).

DESCKIND

Utilisez plutôt DESCKIND.

DllImportSearchPath

Spécifie les chemins d'accès utilisés pour rechercher les DLL qui fournissent des fonctions pour les appels de plateforme.

ExporterEventKind

Décrit les rappels qu’effectue l’exportateur de bibliothèques de types à l’occasion de l’exportation d’une bibliothèque de types.

FUNCFLAGS

Utilisez plutôt FUNCFLAGS.

FUNCKIND

Utilisez plutôt FUNCKIND.

GCHandleType

Représente les types de handles que la classe GCHandle peut allouer.

IDispatchImplType

Indique l’implémentation de IDispatch à utiliser pour une classe particulière.

IDLFLAG

Utilisez plutôt IDLFLAG.

IMPLTYPEFLAGS

Utilisez plutôt IMPLTYPEFLAGS.

ImporterEventKind

Décrit les rappels exécutés par l'outil Type Library Importer (importateur de bibliothèques de types) lors de l'importation d'une bibliothèque de types.

INVOKEKIND

Utilisez plutôt INVOKEKIND.

LayoutKind

Contrôle la disposition d'un objet exporté vers du code non managé.

LIBFLAGS

Utilisez plutôt LIBFLAGS.

PARAMFLAG

Utilisez plutôt PARAMFLAG.

PosixSignal

Spécifie un numéro de signal POSIX.

RegistrationClassContext

Spécifie le jeu de contextes d'exécution dans lequel un objet de classe sera rendu disponible pour les demandes de construction d'instances.

RegistrationConnectionType

Définit les types de connexions à un objet de classe.

SYSKIND

Utilisez plutôt SYSKIND.

TYPEFLAGS

Utilisez plutôt TYPEFLAGS.

TYPEKIND

Utilisez plutôt TYPEKIND.

TypeLibExporterFlags

Indique comment une bibliothèque de types doit être produite.

TypeLibFuncFlags

Décrit les paramètres d'origine de FUNCFLAGS dans la bibliothèque de types COM à partir de l'endroit où cette méthode a été importée.

TypeLibImporterFlags

Indique comment un assembly doit être produit.

TypeLibTypeFlags

Décrit les paramètres d'origine de TYPEFLAGS dans la bibliothèque de types COM à partir de l'endroit où ce type a été importé.

TypeLibVarFlags

Décrit les paramètres d’origine de VARFLAGS dans la bibliothèque de types COM d’où cette variable a été importée.

UnmanagedType

Indique comment marshaler les paramètres ou les champs en code non managé.

VarEnum

Indique comment marshaler les éléments de tableau lorsqu'un tableau est marshalé de code managé en code non managé sous la forme de SafeArray.

VARFLAGS

Utilisez plutôt VARFLAGS.

Délégués

DllImportResolver

Fournit un délégué utilisé pour résoudre des bibliothèques natives via un rappel.

ObjectCreationDelegate

Crée un objet COM.

Remarques

Les membres de cet espace de noms fournissent plusieurs catégories de fonctionnalités, comme indiqué dans le tableau suivant. Les attributs contrôlent le comportement de marshaling, par exemple comment organiser des structures ou comment représenter des chaînes. Les attributs les plus importants sont DllImportAttribute , que vous utilisez pour définir des méthodes d’appel de code non managé pour l’accès aux API non managées, et MarshalAsAttribute , que vous utilisez pour spécifier la façon dont les données sont marshalées entre la mémoire managée et la mémoire non managée.