System.Runtime.InteropServices Espacio de nombres
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
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 |
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 |
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 |
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é |
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 |
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 |
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 |
SafeArrayTypeMismatchException |
Excepción que se produce cuando el tipo del |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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.