System.Runtime.InteropServices Espacio de nombres

Proporciona una amplia variedad de miembros compatibles con la interoperabilidad COM y los servicios de invocación de plataforma. Si no está familiarizado con estos servicios, vea Interoperating with Unmanaged Code (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 contador de referencias de Automation o un proxy personalizado y código auxiliar.

BestFitMappingAttribute

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

BStrWrapper

Calcula las referencias de datos de tipo VT_BSTR de código administrado a no administrado. Esta clase no puede heredarse.

ClassInterfaceAttribute

Indica el tipo de interfaz de clase que se generará para una clase expuesta a COM si no se genera una interfaz.

CoClassAttribute

Especifica el identificador de clase de una coclase importada de 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 se perdió información de una clase o interfaz al importarla desde una biblioteca de tipos a un ensamblado.

ComDefaultInterfaceAttribute

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

ComEventInterfaceAttribute

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

ComEventsHelper

Proporciona métodos que permiten agregar y eliminar los delegados de .NET que controlan los eventos de los objetos COM.

COMException

Excepción que se produce cuando una llamada al método COM devuelve un resultado HRESULT desconocido.

ComImportAttribute

Indica que el tipo con atributos estaba previamente definido en COM.

ComRegisterFunctionAttribute

Especifica el método al que se debe llamar cuando se registre un ensamblado para utilizarlo desde COM; de esta manera, se permite la ejecución de 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 utilizarlo desde COM; de esta manera, se permite la ejecución de código escrito por el usuario durante el proceso de anulación del registro.

ComVisibleAttribute

Controla la accesibilidad a COM de un tipo o miembro administrado individual, o de todos los tipos que están dentro de un ensamblado.

ComWrappers

Clase para administrar controladores de tipos IUnknown COM.

CriticalHandle

Representa una clase contenedora para los recursos de controlador.

CurrencyWrapper

Encapsula los objetos cuyas referencias se van a calcular como VT_CY.

DefaultCharSetAttribute

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

DefaultDllImportSearchPathsAttribute

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

DefaultParameterValueAttribute

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

DispatchWrapper

Encapsula los objetos cuyas referencias se van a calcular como VT_DISPATCH.

DispIdAttribute

Especifica el identificador de envío (DISPID) de COM de un método, un campo o una propiedad.

DllImportAttribute

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

DynamicInterfaceCastableImplementationAttribute

Atributo requerido por cualquier tipo que GetInterfaceImplementation(RuntimeTypeHandle) devuelva.

ErrorWrapper

Encapsula los objetos cuyas referencias se van a calcular como VT_ERROR.

ExtensibleClassFactory

Permite personalizar objetos administrados que se extienden a partir de objetos no administrados durante su creación.

ExternalException

Tipo de excepción base para todas las excepciones de interoperabilidad COM y excepciones SEH (structured exception handling, control estructurado de excepciones).

FieldOffsetAttribute

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

GuidAttribute

Suministra un objeto Guid explícitamente cuando no se desea que se genere un GUID automáticamente.

HandleCollector

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

IDispatchImplAttribute

Indica qué implementación de IDispatch utiliza Common Language Runtime cuando expone interfaces duales e interfaces Dispinterface a COM.

ImmutableCollectionsMarshal

Una 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 se debe hacer un cálculo de referencias de los datos desde el llamador al destinatario de la llamada, pero no de vuelta al llamador.

InterfaceTypeAttribute

Indica si una interfaz administrada es dual, de sólo distribución o sólo IUnknown cuando se expone a COM.

InvalidComObjectException

Excepción que se produce al utilizar un objeto COM no válido.

InvalidOleVariantTypeException

Excepción que produce el contador de referencias cuando encuentra un argumento de un tipo de variante cuyas referencias no se pueden calcular para un código 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 del usuario de código auxiliar de interoperabilidad en escenarios de administrado a interoperabilidad COM.

Marshal

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

MarshalAsAttribute

Indica cómo calcular las referencias de los datos entre el código administrado y el código no administrado.

MarshalDirectiveException

La excepción que produce el contador de referencias cuando encuentra un atributo MarshalAsAttribute que no admite.

MemoryMarshal

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

NativeLibrary

Proporciona las 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 las referencias de los datos se deben calcular desde el destinatario de la llamada al llamador.

PosixSignalContext

Proporciona datos para un PosixSignalRegistration evento.

PosixSignalRegistration

Controla un PosixSignalobjeto .

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 atributo es un ensamblado de interoperabilidad primario.

ProgIdAttribute

Permite que el usuario especifique el identificador de programa (ProgID) de una clase.

RegistrationServices

Proporciona un conjunto de servicios para registrar y anular el registro de ensamblados administrados para utilizarlos 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 en tiempo de ejecución de .NET.

SafeArrayRankMismatchException

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

SafeArrayTypeMismatchException

Excepción que se produce cuando el tipo de una matriz 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 para acceder a la memoria fuera del búfer controlado (agotamientos y saturaciones) provocan excepciones.

SafeHandle

Representa una clase contenedora para los identificadores del sistema operativo. Se debe heredar esta clase.

SEHException

Representa errores de Control de excepciones estructurado (SEH).

SequenceMarshal

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

SetWin32ContextInIDispatchAttribute

Este atributo está obsoleto.

StandardOleMarshalObject

Reemplaza el contador de referencias de subprocesamiento libre de Common Language Runtime (CLR) con el contador de referencias OLE STA estándar.

StructLayoutAttribute

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

SuppressGCTransitionAttribute

Permite indicar que se debe evitar una transición de recolección de elementos no utilizados cuando se realiza una llamada de función no administrada.

TypeIdentifierAttribute

Proporciona compatibilidad para 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 enumeración FUNCFLAGS que se importó originalmente para este método desde la biblioteca de tipos COM.

TypeLibImportClassAttribute

Especifica qué objeto Type utiliza de modo exclusivo una interfaz. Esta clase no puede heredarse.

TypeLibTypeAttribute

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

TypeLibVarAttribute

Contiene VARFLAGS que se importó 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

Encapsula los objetos cuyas referencias se van a calcular como VT_UNKNOWN.

UnmanagedCallConvAttribute

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

UnmanagedCallersOnlyAttribute

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

UnmanagedFunctionPointerAttribute

Controla el comportamiento del cálculo de referencias 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 puede heredarse.

VariantWrapper

Calcula las referencias de datos de tipo VT_VARIANT | VT_BYREF de código administrado a no administrado. Esta clase no puede heredarse.

WasmImportLinkageAttribute

Proporciona una amplia variedad de miembros compatibles con la interoperabilidad COM y los servicios de invocación de plataforma. Si no está familiarizado con estos servicios, vea Interoperating with Unmanaged Code (Interoperar con código no administrado).

Estructuras

ArrayWithOffset

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

BIND_OPTS

Utilice BIND_OPTS en su lugar.

BINDPTR

Utilice BINDPTR en su lugar.

CLong

CLong es un tipo de valor inmutable que representa el long tipo 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 long tipo. 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 una aplicación para distribuir funciones de una interfaz COM.

ComWrappers.ComInterfaceEntry

Tipo de interfaz y puntero que dirige al objeto VTable de destino.

CONNECTDATA

En su lugar, use CONNECTDATA.

CULong

CULong es un tipo de valor inmutable que representa el unsigned long tipo 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 unsigned long tipo. 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

En su lugar, use DISPPARAMS.

ELEMDESC

Utilice ELEMDESC en su lugar.

ELEMDESC.DESCUNION

Utilice ELEMDESC.DESCUNION en su lugar.

EXCEPINFO

En su lugar, use EXCEPINFO.

FILETIME

Utilice FILETIME en su lugar.

FUNCDESC

Utilice FUNCDESC en su lugar.

GCHandle

Proporciona una forma de obtener acceso a un objeto administrado desde la memoria no administrada.

HandleRef

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

IDLDESC

Utilice 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 C o C++en float 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

Utilice PARAMDESC en su lugar.

STATSTG

En su lugar, use STATSTG.

TYPEATTR

Utilice TYPEATTR en su lugar.

TYPEDESC

Utilice TYPEDESC en su lugar.

TYPELIBATTR

Utilice TYPELIBATTR en su lugar.

VARDESC

Utilice VARDESC en su lugar.

VARDESC.DESCUNION

Utilice VARDESC.DESCUNION en su lugar.

Interfaces

_Activator

Expone la clase Activator a código no administrado.

_Assembly

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

_AssemblyBuilder

Expone la clase AssemblyBuilder a código no administrado.

_AssemblyName

Expone la clase AssemblyName a código no administrado.

_Attribute

Expone la clase Attribute a código no administrado.

_ConstructorBuilder

Expone la clase ConstructorBuilder a código no administrado.

_ConstructorInfo

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

_CustomAttributeBuilder

Expone la clase CustomAttributeBuilder a código no administrado.

_EnumBuilder

Expone la clase EnumBuilder a código no administrado.

_EventBuilder

Expone la clase EventBuilder a código no administrado.

_EventInfo

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

_Exception

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

_FieldBuilder

Expone la clase FieldBuilder a código no administrado.

_FieldInfo

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

_ILGenerator

Expone la clase ILGenerator a código no administrado.

_LocalBuilder

Expone la clase LocalBuilder a código no administrado.

_MemberInfo

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

_MethodBase

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

_MethodBuilder

Expone la clase MethodBuilder a código no administrado.

_MethodInfo

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

_MethodRental

Expone la clase MethodRental a código no administrado.

_Module

Expone la clase Module a código no administrado.

_ModuleBuilder

Expone la clase ModuleBuilder a código no administrado.

_ParameterBuilder

Expone la clase ParameterBuilder a código no administrado.

_ParameterInfo

Expone la clase ParameterInfo a código no administrado.

_PropertyBuilder

Expone la clase PropertyBuilder a código no administrado.

_PropertyInfo

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

_SignatureHelper

Expone la clase SignatureHelper a código no administrado.

_Thread

Expone la clase Thread a código no administrado.

_Type

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

_TypeBuilder

Expone la clase TypeBuilder a código no administrado.

ICustomAdapter

Proporciona una manera de que los clientes accedan al objeto real, en lugar de ofrecer el objeto adaptador que proporciona el contador de referencias.

ICustomFactory

Permite que los usuarios escriban código de activación para objetos administrados que extiendan MarshalByRefObject.

ICustomMarshaler

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

ICustomQueryInterface

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

IDynamicInterfaceCastable

Interfaz que se usa 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 utilizarlos 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 la distinción entre mayúsculas y minúsculas en los nombres que se exportan a una biblioteca de tipos.

ITypeLibExporterNotifySink

Proporciona un mecanismo de devolución de llamada para que el convertidor de ensamblados informe al llamador del estado de la conversión, e implicar así al llamador en el proceso de conversión.

ITypeLibImporterNotifySink

Proporciona un mecanismo de devolución de llamada para que el convertidor de bibliotecas de tipos informe al llamador del estado de la conversión, e implicar así al llamador en el proceso de conversión.

UCOMIBindCtx

Utilice BIND_OPTS en su lugar.

UCOMIConnectionPoint

Utilice IConnectionPoint en su lugar.

UCOMIConnectionPointContainer

Utilice IConnectionPointContainer en su lugar.

UCOMIEnumConnectionPoints

Utilice IEnumConnectionPoints en su lugar.

UCOMIEnumConnections

Utilice IEnumConnections en su lugar.

UCOMIEnumMoniker

Utilice IEnumMoniker en su lugar.

UCOMIEnumString

Utilice IEnumString en su lugar.

UCOMIEnumVARIANT

Utilice IEnumVARIANT en su lugar.

UCOMIMoniker

Utilice IMoniker en su lugar.

UCOMIPersistFile

Utilice IPersistFile en su lugar.

UCOMIRunningObjectTable

Utilice IRunningObjectTable en su lugar.

UCOMIStream

Utilice IStream en su lugar.

UCOMITypeComp

Utilice ITypeComp en su lugar.

UCOMITypeInfo

Utilice ITypeInfo en su lugar.

UCOMITypeLib

Utilice ITypeLib en su lugar.

Enumeraciones

Architecture

Indica que la arquitectura de procesador.

AssemblyRegistrationFlags

Define un conjunto de marcadores que se utiliza al registrar ensamblados.

CALLCONV

En su lugar, use CALLCONV.

CallingConvention

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

CharSet

Indica qué juego de caracteres deben usar las cadenas con referencias calculadas.

ClassInterfaceType

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

ComInterfaceType

Indica cómo exponer una interfaz a COM.

ComMemberType

Describe el tipo de un miembro COM.

CreateComInterfaceFlags

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

CreateObjectFlags

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

CustomQueryInterfaceMode

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

CustomQueryInterfaceResult

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

DESCKIND

En su lugar, use DESCKIND.

DllImportSearchPath

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

ExporterEventKind

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

FUNCFLAGS

Utilice FUNCFLAGS en su lugar.

FUNCKIND

Utilice FUNCKIND en su lugar.

GCHandleType

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

IDispatchImplType

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

IDLFLAG

Utilice IDLFLAG en su lugar.

IMPLTYPEFLAGS

En su lugar, use IMPLTYPEFLAGS.

ImporterEventKind

Describe las devoluciones de llamada que el Importador de la biblioteca de tipos realizó al importar una biblioteca de tipos.

INVOKEKIND

En su lugar, use INVOKEKIND.

LayoutKind

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

LIBFLAGS

En su lugar, use LIBFLAGS.

PARAMFLAG

Utilice 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 se pondrá a disposición para peticiones de construcción de instancias.

RegistrationConnectionType

Define los tipos de conexiones con un objeto de clase.

StringMarshalling

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

SYSKIND

Utilice SYSKIND en su lugar.

TYPEFLAGS

Utilice TYPEFLAGS en su lugar.

TYPEKIND

Utilice TYPEKIND en su lugar.

TypeLibExporterFlags

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

TypeLibFuncFlags

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

TypeLibImporterFlags

Indica cómo se debe crear un ensamblado.

TypeLibTypeFlags

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

TypeLibVarFlags

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

UnmanagedType

Identifica la forma de calcular las referencias de parámetros o campos en el código no administrado.

VarEnum

Indica cómo calcular las referencias de los elementos de matriz cuando se calculan las referencias de matriz de código administrado a código no administrado como SafeArray.

VARFLAGS

En su lugar, use VARFLAGS.

Delegados

DllImportResolver

Proporciona un delegado que se usa para resolver las 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 serializarán los datos entre la memoria administrada y no administrada.