Compartir a través de


System.Runtime.InteropServices Espacio de nombres

Proporciona una amplia variedad de miembros que admiten la interoperabilidad COM y los servicios de invocación de plataforma. Si no está familiarizado con estos servicios, consulte Interoperar con código no administrado.

Clases

AllowReversePInvokeCallsAttribute

Permite que un método no administrado llame a un método administrado.

AutomationProxyAttribute

Especifica si el tipo debe serializarse mediante el serializador de Automation o un proxy y código auxiliar personalizados.

BestFitMappingAttribute

Controla si los caracteres Unicode se convierten en los caracteres ANSI coincidentes más cercanos.

BStrWrapper

Serializa los datos de tipo VT_BSTR de código administrado a no administrado. Esta clase no se puede heredar.

ClassInterfaceAttribute

Indica el tipo de interfaz de clase que se va a generar para una clase expuesta a COM, si se genera una interfaz en absoluto.

CoClassAttribute

Especifica el identificador de clase de una coclase importada desde una biblioteca de tipos.

CollectionsMarshal

Clase no segura que proporciona un conjunto de métodos para acceder a las representaciones de datos subyacentes de las colecciones.

ComAliasNameAttribute

Indica el alias COM de un parámetro o tipo de campo.

ComAwareEventInfo

Permite el registro enlazado en tiempo de ejecución de un controlador de eventos.

ComCompatibleVersionAttribute

Indica a un cliente COM que todas las clases de la versión actual de un ensamblado son compatibles con las clases de una versión anterior del ensamblado.

ComConversionLossAttribute

Indica que la información se perdió sobre una clase o interfaz cuando se importó de una biblioteca de tipos a un ensamblado.

ComDefaultInterfaceAttribute

Especifica una interfaz predeterminada que se va a exponer a COM. Esta clase no se puede heredar.

ComEventInterfaceAttribute

Identifica la interfaz de origen y la clase que implementa los métodos de la interfaz de eventos que se generan cuando se importa una coclase desde una biblioteca de tipos COM.

ComEventsHelper

Proporciona métodos que permiten a los delegados de .NET que controlan los eventos que se van a agregar y quitar de los objetos COM.

COMException

Excepción que se produce cuando se devuelve un HRESULT no reconocido desde una llamada al método COM.

ComImportAttribute

Indica que el tipo con atributos se definió previamente en COM.

ComRegisterFunctionAttribute

Especifica el método al que se debe llamar cuando se registra un ensamblado para su uso desde COM; esto permite la ejecución del código escrito por el usuario durante el proceso de registro.

ComSourceInterfacesAttribute

Identifica una lista de interfaces que se exponen como orígenes de eventos COM para la clase con atributos.

ComUnregisterFunctionAttribute

Especifica el método al que se debe llamar cuando se anula el registro de un ensamblado para su uso desde COM; esto permite la ejecución del código escrito por el usuario durante el proceso de anulación del registro.

ComVisibleAttribute

Controla la accesibilidad de un tipo o miembro administrado individual, o de todos los tipos de un ensamblado, a COM.

ComWrappers

Clase para administrar contenedores de tipos IUnknown COM.

CriticalHandle

Representa una clase contenedora para controlar los recursos.

CurrencyWrapper

Ajusta los objetos que el serializador debe serializar como un VT_CY.

DefaultCharSetAttribute

Especifica el valor de la enumeración CharSet. Esta clase no se puede heredar.

DefaultDllImportSearchPathsAttribute

Especifica las rutas de acceso que se usan para buscar archivos DLL que proporcionan funciones para invocaciones de plataforma.

DefaultParameterValueAttribute

Establece el valor predeterminado de un parámetro cuando se llama desde un idioma que admite parámetros predeterminados. Esta clase no se puede heredar.

DispatchWrapper

Ajusta los objetos que el serializador debe serializar como un VT_DISPATCH.

DispIdAttribute

Especifica el identificador de distribución COM (DISPID) de un método, campo o propiedad.

DllImportAttribute

Indica que el método con atributos se expone mediante una biblioteca de vínculos dinámicos (DLL) no administrada como un punto de entrada estático.

DynamicInterfaceCastableImplementationAttribute

Atributo requerido por cualquier tipo devuelto por GetInterfaceImplementation(RuntimeTypeHandle).

ErrorWrapper

Ajusta los objetos que el serializador debe serializar como un VT_ERROR.

ExtensibleClassFactory

Habilita la personalización de objetos administrados que se extienden desde objetos no administrados durante la creación.

ExternalException

Tipo de excepción base para todas las excepciones de interoperabilidad COM y excepciones de control de excepciones estructurados (SEH).

FieldOffsetAttribute

Indica la posición física de los campos dentro de la representación no administrada de una clase o estructura.

GuidAttribute

Proporciona un Guid explícito cuando no es deseable un GUID automático.

HandleCollector

Realiza un seguimiento de los identificadores pendientes y fuerza una recolección de elementos no utilizados cuando se alcanza el umbral especificado.

IDispatchImplAttribute

Indica qué IDispatch implementación que Common Language Runtime usa al exponer interfaces duales y dispinterfaces a COM.

ImmutableCollectionsMarshal

Clase no segura que proporciona un conjunto de métodos para acceder a las representaciones de datos subyacentes de colecciones inmutables.

ImportedFromTypeLibAttribute

Indica que los tipos definidos en un ensamblado se definieron originalmente en una biblioteca de tipos.

InAttribute

Indica que los datos se deben serializar desde el autor de la llamada al destinatario, pero no al autor de la llamada.

InterfaceTypeAttribute

Indica si una interfaz administrada es dual, solo de envío o IUnknown -only cuando se expone a COM.

InvalidComObjectException

Excepción que se produce cuando se usa un objeto COM no válido.

InvalidOleVariantTypeException

Excepción producida por el serializador cuando encuentra un argumento de un tipo de variante que no se puede serializar en código administrado.

JsonMarshal

Proporciona una amplia variedad de miembros que admiten la interoperabilidad COM y los servicios de invocación de plataforma. Si no está familiarizado con estos servicios, consulte Interoperar con código no administrado.

LCIDConversionAttribute

Indica que la firma no administrada de un método espera un parámetro de identificador de configuración regional (LCID).

LibraryImportAttribute

Indica que un generador de origen debe crear una función para serializar argumentos en lugar de confiar en el tiempo de ejecución para generar una función de serialización equivalente en tiempo de ejecución.

ManagedToNativeComInteropStubAttribute

Proporciona compatibilidad con la personalización de usuarios de códigos auxiliares de interoperabilidad en escenarios de interoperabilidad administrados a COM.

Marshal

Proporciona una colección de métodos para asignar memoria no administrada, copiar bloques de memoria no administrados y convertir administrados a tipos no administrados, así como otros métodos varios que se usan al interactuar con código no administrado.

MarshalAsAttribute

Indica cómo serializar los datos entre código administrado y no administrado.

MarshalDirectiveException

Excepción producida por el serializador cuando encuentra un MarshalAsAttribute no admite.

MemoryMarshal

Proporciona métodos para interoperar con Memory<T>, ReadOnlyMemory<T>, Span<T>y ReadOnlySpan<T>.

NativeLibrary

Proporciona API para administrar bibliotecas nativas.

NativeMemory

Esta clase contiene métodos que se usan principalmente para administrar la memoria nativa.

OptionalAttribute

Indica que un parámetro es opcional.

OutAttribute

Indica que los datos se deben serializar de la llamada al autor de la llamada.

PosixSignalContext

Proporciona datos para un evento de PosixSignalRegistration.

PosixSignalRegistration

Controla un PosixSignal.

PreserveSigAttribute

Indica que se debe suprimir la transformación de firma HRESULT que tiene lugar durante las llamadas de interoperabilidad COM.

PrimaryInteropAssemblyAttribute

Indica que el ensamblado con atributos es un ensamblado de interoperabilidad primario.

ProgIdAttribute

Permite al usuario especificar el ProgID de una clase.

RegistrationServices

Proporciona un conjunto de servicios para registrar y anular el registro de ensamblados administrados para su uso desde COM.

RuntimeEnvironment

Proporciona una colección de métodos static que devuelven información sobre el entorno de Common Language Runtime.

RuntimeInformation

Proporciona información sobre la instalación del entorno de ejecución de .NET.

SafeArrayRankMismatchException

Excepción que se produce cuando el rango de un SAFEARRAY entrante no coincide con el rango especificado en la firma administrada.

SafeArrayTypeMismatchException

Excepción que se produce cuando el tipo del SAFEARRAY entrante no coincide con el tipo especificado en la firma administrada.

SafeBuffer

Proporciona un búfer de memoria controlado que se puede usar para leer y escribir. Los intentos de acceder a la memoria fuera del búfer controlado (infraejecuciones y saturaciones) generan excepciones.

SafeHandle

Representa una clase contenedora para los identificadores del sistema operativo. Esta clase debe heredarse.

SEHException

Representa errores de control de excepciones estructurados (SEH).

SequenceMarshal

Proporciona una colección de métodos para interoperar con ReadOnlySequence<T>.

SetWin32ContextInIDispatchAttribute

Este atributo ha quedado en desuso.

StandardOleMarshalObject

Reemplaza el serializador sin subprocesos sin subprocesos estándar de Common Language Runtime (CLR) por el serializador DE STA ESTÁNDAR OLE.

StructLayoutAttribute

Permite controlar el diseño físico de los campos de datos de una clase o estructura en memoria.

SuppressGCTransitionAttribute

Indica que se debe omitir una transición de recolección de elementos no utilizados cuando se realiza una llamada de función no administrada.

TypeIdentifierAttribute

Proporciona compatibilidad con la equivalencia de tipos.

TypeLibConverter

Proporciona un conjunto de servicios que convierten un ensamblado administrado en una biblioteca de tipos COM y viceversa.

TypeLibFuncAttribute

Contiene la FUNCFLAGS que se importaron originalmente para este método desde la biblioteca de tipos COM.

TypeLibImportClassAttribute

Especifica qué Type usa exclusivamente una interfaz. Esta clase no se puede heredar.

TypeLibTypeAttribute

Contiene la TYPEFLAGS que se importaron originalmente para este tipo desde la biblioteca de tipos COM.

TypeLibVarAttribute

Contiene el VARFLAGS que se importaron originalmente para este campo desde la biblioteca de tipos COM.

TypeLibVersionAttribute

Especifica el número de versión de una biblioteca de tipos exportada.

UnknownWrapper

Ajusta los objetos que el serializador debe serializar como un VT_UNKNOWN.

UnmanagedCallConvAttribute

Especifica la convención de llamada necesaria para llamar a métodos P/Invoke implementados en código no administrado.

UnmanagedCallersOnlyAttribute

Cualquier método marcado con UnmanagedCallersOnlyAttribute se puede llamar directamente desde código nativo. El token de función se puede cargar en una variable local mediante el operador dirección de en C# y pasarse como devolución de llamada a un método nativo.

UnmanagedFunctionPointerAttribute

Controla el comportamiento de serialización de una firma de delegado que se pasa como un puntero de función no administrada a o desde código no administrado. Esta clase no se puede heredar.

VariantWrapper

Serializa los datos de tipo VT_VARIANT | VT_BYREF de código administrado a no administrado. Esta clase no se puede heredar.

WasmImportLinkageAttribute

Especifica que la propiedad P/Invoke marcada con este atributo debe estar vinculada como una importación WASM.

Estructuras

ArrayWithOffset

Encapsula una matriz y un desplazamiento dentro de la matriz especificada.

BIND_OPTS

Use BIND_OPTS en su lugar.

BINDPTR

Use BINDPTR en su lugar.

CLong

CLong es un tipo de valor inmutable que representa el tipo de long en C y C++. Está diseñado para usarse como un tipo de intercambio en el límite administrado o no administrado para representar con precisión en las API no administradas de código administrado que usan el tipo de long. Este tipo tiene 32 bits de almacenamiento en todas las plataformas Windows y plataformas basadas en Unix de 32 bits. Tiene 64 bits de almacenamiento en plataformas Unix de 64 bits.

ComWrappers.ComInterfaceDispatch

Interfaz binaria de aplicación para el envío de funciones de una interfaz COM.

ComWrappers.ComInterfaceEntry

Tipo de interfaz y puntero a la tabla virtual de destino.

CONNECTDATA

Use CONNECTDATA en su lugar.

CULong

CULong es un tipo de valor inmutable que representa el tipo de unsigned long en C y C++. Está diseñado para usarse como un tipo de intercambio en el límite administrado o no administrado para representar con precisión en las API no administradas de código administrado que usan el tipo de unsigned long. Este tipo tiene 32 bits de almacenamiento en todas las plataformas Windows y plataformas basadas en Unix de 32 bits. Tiene 64 bits de almacenamiento en plataformas Unix de 64 bits.

DISPPARAMS

Use DISPPARAMS en su lugar.

ELEMDESC

Use ELEMDESC en su lugar.

ELEMDESC.DESCUNION

Use ELEMDESC.DESCUNION en su lugar.

EXCEPINFO

Use EXCEPINFO en su lugar.

FILETIME

Use FILETIME en su lugar.

FUNCDESC

Use FUNCDESC en su lugar.

GCHandle

Proporciona una manera de acceder a un objeto administrado desde la memoria no administrada.

HandleRef

Encapsula un objeto administrado que contiene un identificador para un recurso que se pasa al código no administrado mediante la invocación de plataforma.

IDLDESC

Use IDLDESC en su lugar.

NFloat

NFloat es un tipo de valor inmutable que representa un tipo flotante que tiene el mismo tamaño que el tamaño entero nativo. Está diseñado para usarse como un tipo de intercambio en el límite administrado o no administrado para representar con precisión en las API no administradas de código administrado que usan un alias de tipo para la float de C o C++en plataformas de 32 bits o double en plataformas de 64 bits, como el tipo CGFloat en bibliotecas proporcionadas por Apple.

OSPlatform

Representa una plataforma de sistema operativo.

PARAMDESC

Use PARAMDESC en su lugar.

STATSTG

Use STATSTG en su lugar.

TYPEATTR

Use TYPEATTR en su lugar.

TYPEDESC

Use TYPEDESC en su lugar.

TYPELIBATTR

Use TYPELIBATTR en su lugar.

VARDESC

Use VARDESC en su lugar.

VARDESC.DESCUNION

Use VARDESC.DESCUNION en su lugar.

Interfaces

_Activator

Expone la clase Activator al código no administrado.

_Assembly

Expone los miembros públicos de la clase Assembly al código no administrado.

_AssemblyBuilder

Expone la clase AssemblyBuilder al código no administrado.

_AssemblyName

Expone la clase AssemblyName al código no administrado.

_Attribute

Expone la clase Attribute al código no administrado.

_ConstructorBuilder

Expone la clase ConstructorBuilder al código no administrado.

_ConstructorInfo

Expone los miembros públicos de la clase ConstructorInfo al código no administrado.

_CustomAttributeBuilder

Expone la clase CustomAttributeBuilder al código no administrado.

_EnumBuilder

Expone la clase EnumBuilder al código no administrado.

_EventBuilder

Expone la clase EventBuilder al código no administrado.

_EventInfo

Expone los miembros públicos de la clase EventInfo al código no administrado.

_Exception

Expone los miembros públicos de la clase Exception al código no administrado.

_FieldBuilder

Expone la clase FieldBuilder al código no administrado.

_FieldInfo

Expone los miembros públicos de la clase FieldInfo al código no administrado.

_ILGenerator

Expone la clase ILGenerator al código no administrado.

_LocalBuilder

Expone la clase LocalBuilder al código no administrado.

_MemberInfo

Expone los miembros públicos de la clase MemberInfo al código no administrado.

_MethodBase

Expone los miembros públicos de la clase MethodBase al código no administrado.

_MethodBuilder

Expone la clase MethodBuilder al código no administrado.

_MethodInfo

Expone los miembros públicos de la clase MethodInfo al código no administrado.

_MethodRental

Expone la clase MethodRental al código no administrado.

_Module

Expone la clase Module al código no administrado.

_ModuleBuilder

Expone la clase ModuleBuilder al código no administrado.

_ParameterBuilder

Expone la clase ParameterBuilder al código no administrado.

_ParameterInfo

Expone la clase ParameterInfo al código no administrado.

_PropertyBuilder

Expone la clase PropertyBuilder al código no administrado.

_PropertyInfo

Expone los miembros públicos de la clase PropertyInfo al código no administrado.

_SignatureHelper

Expone la clase SignatureHelper al código no administrado.

_Thread

Expone la clase Thread al código no administrado.

_Type

Expone los miembros públicos de la clase Type al código no administrado.

_TypeBuilder

Expone la clase TypeBuilder al código no administrado.

ICustomAdapter

Proporciona una manera de que los clientes accedan al objeto real, en lugar del objeto adaptador entregado por un serializador personalizado.

ICustomFactory

Permite a los usuarios escribir código de activación para objetos administrados que extienden MarshalByRefObject.

ICustomMarshaler

Proporciona contenedores personalizados para controlar las llamadas a métodos.

ICustomQueryInterface

Permite a los desarrolladores proporcionar una implementación administrada personalizada del método IUnknown::QueryInterface(REFIID riid, void **ppvObject).

IDynamicInterfaceCastable

Interfaz usada para participar en un error de conversión de tipos.

IRegistrationServices

Proporciona un conjunto de servicios para registrar y anular el registro de ensamblados administrados para su uso desde COM.

ITypeLibConverter

Proporciona un conjunto de servicios que convierten un ensamblado administrado en una biblioteca de tipos COM y viceversa.

ITypeLibExporterNameProvider

Proporciona control sobre el uso de mayúsculas y minúsculas de nombres cuando se exportan a una biblioteca de tipos.

ITypeLibExporterNotifySink

Proporciona un mecanismo de devolución de llamada para que el convertidor de ensamblados informe al autor de la llamada del estado de la conversión e implique al autor de la llamada en el propio proceso de conversión.

ITypeLibImporterNotifySink

Proporciona un mecanismo de devolución de llamada para que el convertidor de biblioteca de tipos informe al autor de la llamada del estado de la conversión e implique al autor de la llamada en el propio proceso de conversión.

UCOMIBindCtx

Use BIND_OPTS en su lugar.

UCOMIConnectionPoint

Use IConnectionPoint en su lugar.

UCOMIConnectionPointContainer

Use IConnectionPointContainer en su lugar.

UCOMIEnumConnectionPoints

Use IEnumConnectionPoints en su lugar.

UCOMIEnumConnections

Use IEnumConnections en su lugar.

UCOMIEnumMoniker

Use IEnumMoniker en su lugar.

UCOMIEnumString

Use IEnumString en su lugar.

UCOMIEnumVARIANT

Use IEnumVARIANT en su lugar.

UCOMIMoniker

Use IMoniker en su lugar.

UCOMIPersistFile

Use IPersistFile en su lugar.

UCOMIRunningObjectTable

Use IRunningObjectTable en su lugar.

UCOMIStream

Use IStream en su lugar.

UCOMITypeComp

Use ITypeComp en su lugar.

UCOMITypeInfo

Use ITypeInfo en su lugar.

UCOMITypeLib

Use ITypeLib en su lugar.

Enumeraciones

Architecture

Indica la arquitectura del procesador.

AssemblyRegistrationFlags

Define un conjunto de marcas usadas al registrar ensamblados.

CALLCONV

Use CALLCONV en su lugar.

CallingConvention

Especifica la convención de llamada necesaria para llamar a métodos implementados en código no administrado.

CharSet

Determina qué cadenas serialadas de juego de caracteres deben usar.

ClassInterfaceType

Identifica el tipo de interfaz de clase que se genera para una clase.

ComInterfaceType

Identifica cómo exponer una interfaz a COM.

ComMemberType

Describe el tipo de un miembro COM.

CreateComInterfaceFlags

Especifica marcas para el método GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags).

CreateObjectFlags

Especifica marcas para el método GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).

CustomQueryInterfaceMode

Indica si las llamadas IUnknown::QueryInter face del método GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) pueden usar la interfaz ICustomQueryInterface.

CustomQueryInterfaceResult

Proporciona valores devueltos para el método GetInterface(Guid, IntPtr).

DESCKIND

Use DESCKIND en su lugar.

DllImportSearchPath

Especifica las rutas de acceso que se usan para buscar archivos DLL que proporcionan funciones para invocaciones de plataforma.

ExporterEventKind

Describe las devoluciones de llamada que realiza el exportador de la biblioteca de tipos al exportar una biblioteca de tipos.

FUNCFLAGS

Use FUNCFLAGS en su lugar.

FUNCKIND

Use FUNCKIND en su lugar.

GCHandleType

Representa los tipos de identificadores que el tipo de GCHandle puede asignar.

IDispatchImplType

Indica qué implementación IDispatch usar para una clase determinada.

IDLFLAG

Use IDLFLAG en su lugar.

IMPLTYPEFLAGS

Use IMPLTYPEFLAGS en su lugar.

ImporterEventKind

Describe las devoluciones de llamada que realiza el importador de la biblioteca de tipos al importar una biblioteca de tipos.

INVOKEKIND

Use INVOKEKIND en su lugar.

LayoutKind

Controla el diseño de un objeto cuando se exporta al código no administrado.

LIBFLAGS

Use LIBFLAGS en su lugar.

PARAMFLAG

Use PARAMFLAG en su lugar.

PosixSignal

Especifica un número de señal POSIX.

RegistrationClassContext

Especifica el conjunto de contextos de ejecución en los que un objeto de clase estará disponible para que las solicitudes construyan instancias.

RegistrationConnectionType

Define los tipos de conexiones a un objeto de clase.

StringMarshalling

Especifica cómo se deben serializar las cadenas para las p/invoke generadas.

SYSKIND

Use SYSKIND en su lugar.

TYPEFLAGS

Use TYPEFLAGS en su lugar.

TYPEKIND

Use TYPEKIND en su lugar.

TypeLibExporterFlags

Indica cómo se debe generar una biblioteca de tipos.

TypeLibFuncFlags

Describe la configuración original del FUNCFLAGS en la biblioteca de tipos COM desde donde se importó este método.

TypeLibImporterFlags

Indica cómo se debe generar un ensamblado.

TypeLibTypeFlags

Describe la configuración original del TYPEFLAGS en la biblioteca de tipos COM desde la que se importó el tipo.

TypeLibVarFlags

Describe la configuración original del VARFLAGS en la biblioteca de tipos COM desde la que se importó la variable.

UnmanagedType

Identifica cómo serializar parámetros o campos en código no administrado.

VarEnum

Indica cómo serializar los elementos de matriz cuando se serializa una matriz de código administrado a no administrado como un SafeArray.

VARFLAGS

Use VARFLAGS en su lugar.

Delegados

DllImportResolver

Proporciona un delegado que se usa para resolver bibliotecas nativas a través de la devolución de llamada.

ObjectCreationDelegate

Crea un objeto COM.

Comentarios

Los miembros de este espacio de nombres proporcionan varias categorías de funcionalidad, como se muestra en la tabla siguiente. Los atributos controlan el comportamiento de serialización, como cómo organizar estructuras o cómo representar cadenas. Los atributos más importantes son DllImportAttribute, que se usan para definir métodos de invocación de plataforma para acceder a las API no administradas y MarshalAsAttribute, que se usa para especificar cómo se serializan los datos entre la memoria administrada y no administrada.