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 Interoperación con código no administrado.

Clases

Nombre Description
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 .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 .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 .VT_ERROR

ExtendedLayoutAttribute

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 Interoperación con código no administrado.

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.

GCHandleExtensions

Proporciona métodos de extensión para funcionar con identificadores de GC.

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

Una clase no segura que proporciona un conjunto de métodos para acceder a las representaciones de datos subyacentes de los tipos JSON.

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 una MarshalAsAttribute excepción que 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 PosixSignalRegistration evento.

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 static métodos 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 entrante SAFEARRAY no coincide con el rango especificado en la firma administrada.

SafeArrayTypeMismatchException

Excepción que se produce cuando el tipo de entrada SAFEARRAY 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.

TensorMarshal

Proporciona métodos para interoperar con Tensor<T>, TensorSpan<T>y ReadOnlyTensorSpan<T>.

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.

TypeMapAssemblyTargetAttribute<TTypeMapGroup>

Representa un atributo que declara que se debe inspeccionar un ensamblado durante la creación del mapa de tipos.

TypeMapAssociationAttribute<TTypeMapGroup>

Representa un atributo que crea una asociación de tipo entre un tipo y su proxy.

TypeMapAttribute<TTypeMapGroup>

Representa un atributo que define la asignación de tipos entre una cadena y un tipo.

TypeMapping

Representa un tipo de entrada para la lógica de asignación de tipos de interoperabilidad.

UnknownWrapper

Ajusta los objetos que el serializador debe serializar como .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

Nombre Description
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 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

Utilice CONNECTDATA en su lugar.

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

Utilice DISPPARAMS en su lugar.

ELEMDESC

Utilice ELEMDESC en su lugar.

ELEMDESC.DESCUNION

Utilice ELEMDESC.DESCUNION en su lugar.

EXCEPINFO

Utilice EXCEPINFO en su lugar.

FILETIME

Utilice FILETIME en su lugar.

FUNCDESC

Utilice FUNCDESC en su lugar.

GCHandle

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

GCHandle<T>

Representa un identificador gc fuertemente tipado para un objeto administrado.

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

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.

PinnedGCHandle<T>

Representa un identificador gc fuertemente tipado para un objeto administrado.

STATSTG

Utilice STATSTG en su lugar.

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.

WeakGCHandle<T>

Representa un identificador gc fuertemente tipado para un objeto administrado.

Interfaces

Nombre Description
_Activator

Expone la Activator clase al código no administrado.

_Assembly

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

_AssemblyBuilder

Expone la AssemblyBuilder clase al código no administrado.

_AssemblyName

Expone la AssemblyName clase al código no administrado.

_Attribute

Expone la Attribute clase al código no administrado.

_ConstructorBuilder

Expone la ConstructorBuilder clase al código no administrado.

_ConstructorInfo

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

_CustomAttributeBuilder

Expone la CustomAttributeBuilder clase al código no administrado.

_EnumBuilder

Expone la EnumBuilder clase al código no administrado.

_EventBuilder

Expone la EventBuilder clase al código no administrado.

_EventInfo

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

_Exception

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

_FieldBuilder

Expone la FieldBuilder clase al código no administrado.

_FieldInfo

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

_ILGenerator

Expone la ILGenerator clase al código no administrado.

_LocalBuilder

Expone la LocalBuilder clase al código no administrado.

_MemberInfo

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

_MethodBase

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

_MethodBuilder

Expone la MethodBuilder clase al código no administrado.

_MethodInfo

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

_MethodRental

Expone la MethodRental clase al código no administrado.

_Module

Expone la Module clase al código no administrado.

_ModuleBuilder

Expone la ModuleBuilder clase al código no administrado.

_ParameterBuilder

Expone la ParameterBuilder clase al código no administrado.

_ParameterInfo

Expone la ParameterInfo clase al código no administrado.

_PropertyBuilder

Expone la PropertyBuilder clase al código no administrado.

_PropertyInfo

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

_SignatureHelper

Expone la SignatureHelper clase al código no administrado.

_Thread

Expone la Thread clase al código no administrado.

_Type

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

_TypeBuilder

Expone la TypeBuilder clase 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

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

Nombre Description
Architecture

Indica la arquitectura del procesador.

AssemblyRegistrationFlags

Define un conjunto de marcas usadas al registrar ensamblados.

CALLCONV

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

CreatedWrapperFlags

Especifica marcas para CreateObject(IntPtr, CreateObjectFlags, Object, CreatedWrapperFlags).

CreateObjectFlags

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

CustomQueryInterfaceMode

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

CustomQueryInterfaceResult

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

DESCKIND

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

ExtendedLayoutKind

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 Interoperación con código no administrado.

FUNCFLAGS

Utilice FUNCFLAGS en su lugar.

FUNCKIND

Utilice 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

Utilice IDLFLAG en su lugar.

IMPLTYPEFLAGS

Utilice 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

Utilice INVOKEKIND en su lugar.

LayoutKind

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

LIBFLAGS

Utilice LIBFLAGS en su lugar.

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

Utilice SYSKIND en su lugar.

TYPEFLAGS

Utilice TYPEFLAGS en su lugar.

TYPEKIND

Utilice 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

Utilice VARFLAGS en su lugar.

Delegados

Nombre Description
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 serializa los datos entre la memoria administrada y no administrada.