System.Runtime.InteropServices Namespace
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma ampla variedade de membros que dão suporte a serviços de invocação de plataforma e interoperabilidade COM. Se você não estiver familiarizado com esses serviços, consulte interoperação comde código não gerenciado.
Classes
AllowReversePInvokeCallsAttribute |
Permite que um método não gerenciado chame um método gerenciado. |
AutomationProxyAttribute |
Especifica se o tipo deve ser empacotado usando o marshaler de Automação ou um proxy e stub personalizados. |
BestFitMappingAttribute |
Controla se os caracteres Unicode são convertidos nos caracteres ANSI correspondentes mais próximos. |
BStrWrapper |
Faz marshaling de dados do tipo |
ClassInterfaceAttribute |
Indica o tipo de interface de classe a ser gerado para uma classe exposta ao COM, se uma interface for gerada. |
CoClassAttribute |
Especifica o identificador de classe de uma coclass importada de uma biblioteca de tipos. |
CollectionsMarshal |
Uma classe não segura que fornece um conjunto de métodos para acessar as representações de dados subjacentes de coleções. |
ComAliasNameAttribute |
Indica o alias COM para um parâmetro ou tipo de campo. |
ComAwareEventInfo |
Permite o registro de limite tardio de um manipulador de eventos. |
ComCompatibleVersionAttribute |
Indica a um cliente COM que todas as classes na versão atual de um assembly são compatíveis com classes em uma versão anterior do assembly. |
ComConversionLossAttribute |
Indica que as informações foram perdidas sobre uma classe ou interface quando elas foram importadas de uma biblioteca de tipos para um assembly. |
ComDefaultInterfaceAttribute |
Especifica uma interface padrão a ser exposta ao COM. Essa classe não pode ser herdada. |
ComEventInterfaceAttribute |
Identifica a interface de origem e a classe que implementa os métodos da interface de evento gerados quando uma coclasse é importada de uma biblioteca de tipos COM. |
ComEventsHelper |
Fornece métodos que permitem que delegados do .NET que lidam com eventos sejam adicionados e removidos de objetos COM. |
COMException |
A exceção gerada quando um HRESULT não reconhecido é retornado de uma chamada de método COM. |
ComImportAttribute |
Indica que o tipo atribuído foi definido anteriormente em COM. |
ComRegisterFunctionAttribute |
Especifica o método a ser chamado quando você registra um assembly para uso do COM; isso permite a execução de código escrito pelo usuário durante o processo de registro. |
ComSourceInterfacesAttribute |
Identifica uma lista de interfaces expostas como fontes de evento COM para a classe atribuída. |
ComUnregisterFunctionAttribute |
Especifica o método a ser chamado quando você cancela o registro de um assembly para uso do COM; isso permite a execução de código escrito pelo usuário durante o processo de cancelamento de registro. |
ComVisibleAttribute |
Controla a acessibilidade de um tipo ou membro gerenciado individual, ou de todos os tipos em um assembly, para COM. |
ComWrappers |
Classe para gerenciar wrappers de tipos COM IUnknown. |
CriticalHandle |
Representa uma classe wrapper para manipular recursos. |
CurrencyWrapper |
Encapsula objetos que o marshaler deve realizar marshaling como um |
DefaultCharSetAttribute |
Especifica o valor da enumeração CharSet. Essa classe não pode ser herdada. |
DefaultDllImportSearchPathsAttribute |
Especifica os caminhos usados para pesquisar DLLs que fornecem funções para invocações de plataforma. |
DefaultParameterValueAttribute |
Define o valor padrão de um parâmetro quando chamado de um idioma que dá suporte a parâmetros padrão. Essa classe não pode ser herdada. |
DispatchWrapper |
Encapsula objetos que o marshaler deve realizar marshaling como um |
DispIdAttribute |
Especifica o DISPID (identificador de expedição COM) de um método, campo ou propriedade. |
DllImportAttribute |
Indica que o método atribuído é exposto por uma DLL (biblioteca de vínculo dinâmico) não gerenciada como um ponto de entrada estático. |
DynamicInterfaceCastableImplementationAttribute |
Atributo exigido por qualquer tipo retornado por GetInterfaceImplementation(RuntimeTypeHandle). |
ErrorWrapper |
Encapsula objetos que o marshaler deve realizar marshaling como um |
ExtensibleClassFactory |
Permite a personalização de objetos gerenciados que se estendem de objetos não gerenciados durante a criação. |
ExternalException |
O tipo de exceção base para todas as exceções de interoperabilidade COM e exceções de SEH (tratamento de exceção estruturada). |
FieldOffsetAttribute |
Indica a posição física dos campos dentro da representação não gerenciada de uma classe ou estrutura. |
GuidAttribute |
Fornece uma Guid explícita quando um GUID automático é indesejável. |
HandleCollector |
Controla identificadores pendentes e força uma coleta de lixo quando o limite especificado é atingido. |
IDispatchImplAttribute |
Indica qual |
ImmutableCollectionsMarshal |
Uma classe não segura que fornece um conjunto de métodos para acessar as representações de dados subjacentes de coleções imutáveis. |
ImportedFromTypeLibAttribute |
Indica que os tipos definidos em um assembly foram originalmente definidos em uma biblioteca de tipos. |
InAttribute |
Indica que os dados devem ser empacotados do chamador para o destinatário, mas não de volta para o chamador. |
InterfaceTypeAttribute |
Indica se uma interface gerenciada é dupla, somente expedição ou |
InvalidComObjectException |
A exceção gerada quando um objeto COM inválido é usado. |
InvalidOleVariantTypeException |
A exceção gerada pelo marshaler quando ele encontra um argumento de um tipo variante que não pode ser marshaled para o código gerenciado. |
JsonMarshal |
Fornece uma ampla variedade de membros que dão suporte a serviços de invocação de plataforma e interoperabilidade COM. Se você não estiver familiarizado com esses serviços, consulte interoperação comde código não gerenciado. |
LCIDConversionAttribute |
Indica que a assinatura não gerenciada de um método espera um parâmetro LCID (identificador de localidade). |
LibraryImportAttribute |
Indica que um gerador de origem deve criar uma função para reunir argumentos em vez de depender do runtime para gerar uma função de marshalling equivalente em tempo de execução. |
ManagedToNativeComInteropStubAttribute |
Fornece suporte para a personalização do usuário de stubs de interoperabilidade em cenários de interoperabilidade gerenciados para COM. |
Marshal |
Fornece uma coleção de métodos para alocar memória não gerenciada, copiar blocos de memória não gerenciados e converter gerenciados em tipos não gerenciados, bem como outros métodos diversos usados ao interagir com código não gerenciado. |
MarshalAsAttribute |
Indica como fazer marshaling dos dados entre código gerenciado e não gerenciado. |
MarshalDirectiveException |
A exceção gerada pelo marshaler quando ele encontra um MarshalAsAttribute ele não dá suporte. |
MemoryMarshal |
Fornece métodos para interoperar com Memory<T>, ReadOnlyMemory<T>, Span<T>e ReadOnlySpan<T>. |
NativeLibrary |
Fornece APIs para gerenciar bibliotecas nativas. |
NativeMemory |
Essa classe contém métodos usados principalmente para gerenciar a memória nativa. |
OptionalAttribute |
Indica que um parâmetro é opcional. |
OutAttribute |
Indica que os dados devem ser empacotados do destinatário do chamador de volta para o chamador. |
PosixSignalContext |
Fornece dados para um evento de PosixSignalRegistration. |
PosixSignalRegistration |
Manipula um PosixSignal. |
PreserveSigAttribute |
Indica que a transformação de assinatura HRESULT que ocorre durante chamadas de interoperabilidade COM deve ser suprimida. |
PrimaryInteropAssemblyAttribute |
Indica que o assembly atribuído é um assembly de interoperabilidade primário. |
ProgIdAttribute |
Permite que o usuário especifique o ProgID de uma classe. |
RegistrationServices |
Fornece um conjunto de serviços para registrar e cancelar o registro de assemblies gerenciados para uso do COM. |
RuntimeEnvironment |
Fornece uma coleção de métodos |
RuntimeInformation |
Fornece informações sobre a instalação do runtime do .NET. |
SafeArrayRankMismatchException |
A exceção gerada quando a classificação de um |
SafeArrayTypeMismatchException |
A exceção gerada quando o tipo do |
SafeBuffer |
Fornece um buffer de memória controlado que pode ser usado para leitura e gravação. Tentativas de acessar a memória fora do buffer controlado (subexecuções e excessos) geram exceções. |
SafeHandle |
Representa uma classe wrapper para identificadores do sistema operacional. Essa classe deve ser herdada. |
SEHException |
Representa erros de SEH (tratamento de exceção estruturado). |
SequenceMarshal |
Fornece uma coleção de métodos para interoperação com ReadOnlySequence<T>. |
SetWin32ContextInIDispatchAttribute |
Esse atributo foi preterido. |
StandardOleMarshalObject |
Substitui o marshaler de thread livre clr (common language runtime) padrão pelo marshaler OLE STA padrão. |
StructLayoutAttribute |
Permite controlar o layout físico dos campos de dados de uma classe ou estrutura na memória. |
SuppressGCTransitionAttribute |
Indica que uma transição de coleta de lixo deve ser ignorada quando uma chamada de função não gerenciada é feita. |
TypeIdentifierAttribute |
Fornece suporte para equivalência de tipo. |
TypeLibConverter |
Fornece um conjunto de serviços que convertem um assembly gerenciado em uma biblioteca de tipos COM e vice-versa. |
TypeLibFuncAttribute |
Contém os FUNCFLAGS que foram originalmente importados para esse método da biblioteca de tipos COM. |
TypeLibImportClassAttribute |
Especifica qual Type usa exclusivamente uma interface. Essa classe não pode ser herdada. |
TypeLibTypeAttribute |
Contém os TYPEFLAGS que foram importados originalmente para esse tipo da biblioteca de tipos COM. |
TypeLibVarAttribute |
Contém os VARFLAGS que foram originalmente importados para esse campo da biblioteca de tipos COM. |
TypeLibVersionAttribute |
Especifica o número de versão de uma biblioteca de tipos exportada. |
UnknownWrapper |
Encapsula objetos que o marshaler deve realizar marshaling como um |
UnmanagedCallConvAttribute |
Especifica a convenção de chamada necessária para chamar métodos P/Invoke implementados em código não gerenciado. |
UnmanagedCallersOnlyAttribute |
Qualquer método marcado com UnmanagedCallersOnlyAttribute pode ser chamado diretamente do código nativo. O token de função pode ser carregado em uma variável local usando o operador de endereço de em C# e passado como um retorno de chamada para um método nativo. |
UnmanagedFunctionPointerAttribute |
Controla o comportamento de marshaling de uma assinatura delegada passada como um ponteiro de função não gerenciado para ou de código não gerenciado. Essa classe não pode ser herdada. |
VariantWrapper |
Faz marshaling de dados do tipo |
WasmImportLinkageAttribute |
Especifica que o P/Invoke marcado com esse atributo deve ser vinculado como uma importação WASM. |
Estruturas
ArrayWithOffset |
Encapsula uma matriz e um deslocamento dentro da matriz especificada. |
BIND_OPTS |
Em vez disso, use BIND_OPTS. |
BINDPTR |
Em vez disso, use BINDPTR. |
CLong |
CLong é um tipo de valor imutável que representa o tipo |
ComWrappers.ComInterfaceDispatch |
Uma interface binária de aplicativo para expedição de função de uma interface COM. |
ComWrappers.ComInterfaceEntry |
Tipo de interface e ponteiro para VTable de destino. |
CONNECTDATA |
Em vez disso, use CONNECTDATA. |
CULong |
CULong é um tipo de valor imutável que representa o tipo |
DISPPARAMS |
Em vez disso, use DISPPARAMS. |
ELEMDESC |
Em vez disso, use ELEMDESC. |
ELEMDESC.DESCUNION |
Em vez disso, use ELEMDESC.DESCUNION. |
EXCEPINFO |
Em vez disso, use EXCEPINFO. |
FILETIME |
Em vez disso, use FILETIME. |
FUNCDESC |
Em vez disso, use FUNCDESC. |
GCHandle |
Fornece uma maneira de acessar um objeto gerenciado de memória não gerenciada. |
HandleRef |
Encapsula um objeto gerenciado que contém um identificador para um recurso que é passado para código não gerenciado usando a invocação de plataforma. |
IDLDESC |
Em vez disso, use IDLDESC. |
NFloat |
NFloat é um tipo de valor imutável que representa um tipo flutuante que tem o mesmo tamanho do tamanho inteiro nativo.
Ele deve ser usado como um tipo de troca no limite gerenciado/não gerenciado para representar com precisão em APIs não gerenciadas de código gerenciado que usam um alias de tipo para |
OSPlatform |
Representa uma plataforma do sistema operacional. |
PARAMDESC |
Em vez disso, use PARAMDESC. |
STATSTG |
Em vez disso, use STATSTG. |
TYPEATTR |
Em vez disso, use TYPEATTR. |
TYPEDESC |
Em vez disso, use TYPEDESC. |
TYPELIBATTR |
Em vez disso, use TYPELIBATTR. |
VARDESC |
Em vez disso, use VARDESC. |
VARDESC.DESCUNION |
Em vez disso, use VARDESC.DESCUNION. |
Interfaces
_Activator |
Expõe a classe Activator ao código não gerenciado. |
_Assembly |
Expõe os membros públicos da classe Assembly ao código não gerenciado. |
_AssemblyBuilder |
Expõe a classe AssemblyBuilder ao código não gerenciado. |
_AssemblyName |
Expõe a classe AssemblyName ao código não gerenciado. |
_Attribute |
Expõe a classe Attribute ao código não gerenciado. |
_ConstructorBuilder |
Expõe a classe ConstructorBuilder ao código não gerenciado. |
_ConstructorInfo |
Expõe os membros públicos da classe ConstructorInfo ao código não gerenciado. |
_CustomAttributeBuilder |
Expõe a classe CustomAttributeBuilder ao código não gerenciado. |
_EnumBuilder |
Expõe a classe EnumBuilder ao código não gerenciado. |
_EventBuilder |
Expõe a classe EventBuilder ao código não gerenciado. |
_EventInfo |
Expõe os membros públicos da classe EventInfo ao código não gerenciado. |
_Exception |
Expõe os membros públicos da classe Exception ao código não gerenciado. |
_FieldBuilder |
Expõe a classe FieldBuilder ao código não gerenciado. |
_FieldInfo |
Expõe os membros públicos da classe FieldInfo ao código não gerenciado. |
_ILGenerator |
Expõe a classe ILGenerator ao código não gerenciado. |
_LocalBuilder |
Expõe a classe LocalBuilder ao código não gerenciado. |
_MemberInfo |
Expõe os membros públicos da classe MemberInfo ao código não gerenciado. |
_MethodBase |
Expõe os membros públicos da classe MethodBase ao código não gerenciado. |
_MethodBuilder |
Expõe a classe MethodBuilder ao código não gerenciado. |
_MethodInfo |
Expõe os membros públicos da classe MethodInfo ao código não gerenciado. |
_MethodRental |
Expõe a classe MethodRental ao código não gerenciado. |
_Module |
Expõe a classe Module ao código não gerenciado. |
_ModuleBuilder |
Expõe a classe ModuleBuilder ao código não gerenciado. |
_ParameterBuilder |
Expõe a classe ParameterBuilder ao código não gerenciado. |
_ParameterInfo |
Expõe a classe ParameterInfo ao código não gerenciado. |
_PropertyBuilder |
Expõe a classe PropertyBuilder ao código não gerenciado. |
_PropertyInfo |
Expõe os membros públicos da classe PropertyInfo ao código não gerenciado. |
_SignatureHelper |
Expõe a classe SignatureHelper ao código não gerenciado. |
_Thread |
Expõe a classe Thread ao código não gerenciado. |
_Type |
Expõe os membros públicos da classe Type ao código não gerenciado. |
_TypeBuilder |
Expõe a classe TypeBuilder ao código não gerenciado. |
ICustomAdapter |
Fornece uma maneira para os clientes acessarem o objeto real, em vez do objeto do adaptador entregue por um marshaler personalizado. |
ICustomFactory |
Permite que os usuários escrevam código de ativação para objetos gerenciados que estendem MarshalByRefObject. |
ICustomMarshaler |
Fornece wrappers personalizados para lidar com chamadas de método. |
ICustomQueryInterface |
Permite que os desenvolvedores forneçam uma implementação gerenciada personalizada do método IUnknown::QueryInterface(REFIID riid, void **ppvObject). |
IDynamicInterfaceCastable |
Interface usada para participar de uma falha de conversão de tipo. |
IRegistrationServices |
Fornece um conjunto de serviços para registrar e cancelar o registro de assemblies gerenciados para uso do COM. |
ITypeLibConverter |
Fornece um conjunto de serviços que convertem um assembly gerenciado em uma biblioteca de tipos COM e vice-versa. |
ITypeLibExporterNameProvider |
Fornece controle sobre o uso de maiúsculas e minúsculas de nomes quando exportados para uma biblioteca de tipos. |
ITypeLibExporterNotifySink |
Fornece um mecanismo de retorno de chamada para o conversor de assembly informar o chamador do status da conversão e envolver o chamador no próprio processo de conversão. |
ITypeLibImporterNotifySink |
Fornece um mecanismo de retorno de chamada para o conversor de biblioteca de tipos para informar o chamador do status da conversão e envolver o chamador no próprio processo de conversão. |
UCOMIBindCtx |
Em vez disso, use BIND_OPTS. |
UCOMIConnectionPoint |
Em vez disso, use IConnectionPoint. |
UCOMIConnectionPointContainer |
Em vez disso, use IConnectionPointContainer. |
UCOMIEnumConnectionPoints |
Em vez disso, use IEnumConnectionPoints. |
UCOMIEnumConnections |
Em vez disso, use IEnumConnections. |
UCOMIEnumMoniker |
Em vez disso, use IEnumMoniker. |
UCOMIEnumString |
Em vez disso, use IEnumString. |
UCOMIEnumVARIANT |
Em vez disso, use IEnumVARIANT. |
UCOMIMoniker |
Em vez disso, use IMoniker. |
UCOMIPersistFile |
Em vez disso, use IPersistFile. |
UCOMIRunningObjectTable |
Em vez disso, use IRunningObjectTable. |
UCOMIStream |
Em vez disso, use IStream. |
UCOMITypeComp |
Em vez disso, use ITypeComp. |
UCOMITypeInfo |
Em vez disso, use ITypeInfo. |
UCOMITypeLib |
Em vez disso, use ITypeLib. |
Enumerações
Architecture |
Indica a arquitetura do processador. |
AssemblyRegistrationFlags |
Define um conjunto de sinalizadores usados ao registrar assemblies. |
CALLCONV |
Em vez disso, use CALLCONV. |
CallingConvention |
Especifica a convenção de chamada necessária para chamar métodos implementados em código não gerenciado. |
CharSet |
Determina qual conjunto de caracteres as cadeias de caracteres marshaled devem usar. |
ClassInterfaceType |
Identifica o tipo de interface de classe que é gerado para uma classe. |
ComInterfaceType |
Identifica como expor uma interface ao COM. |
ComMemberType |
Descreve o tipo de membro COM. |
CreateComInterfaceFlags |
Especifica sinalizadores para o método GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags). |
CreateObjectFlags |
Especifica sinalizadores para o método GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags). |
CustomQueryInterfaceMode |
Indica se as chamadas |
CustomQueryInterfaceResult |
Fornece valores retornados para o método GetInterface(Guid, IntPtr). |
DESCKIND |
Em vez disso, use DESCKIND. |
DllImportSearchPath |
Especifica os caminhos usados para pesquisar DLLs que fornecem funções para invocações de plataforma. |
ExporterEventKind |
Descreve os retornos de chamada que o exportador da biblioteca de tipos faz ao exportar uma biblioteca de tipos. |
FUNCFLAGS |
Em vez disso, use FUNCFLAGS. |
FUNCKIND |
Em vez disso, use FUNCKIND. |
GCHandleType |
Representa os tipos de identificadores que o tipo de GCHandle pode alocar. |
IDispatchImplType |
Indica qual |
IDLFLAG |
Em vez disso, use IDLFLAG. |
IMPLTYPEFLAGS |
Em vez disso, use IMPLTYPEFLAGS. |
ImporterEventKind |
Descreve os retornos de chamada que o importador de biblioteca de tipos faz ao importar uma biblioteca de tipos. |
INVOKEKIND |
Em vez disso, use INVOKEKIND. |
LayoutKind |
Controla o layout de um objeto quando exportado para código não gerenciado. |
LIBFLAGS |
Em vez disso, use LIBFLAGS. |
PARAMFLAG |
Em vez disso, use PARAMFLAG. |
PosixSignal |
Especifica um número de sinal POSIX. |
RegistrationClassContext |
Especifica o conjunto de contextos de execução nos quais um objeto de classe será disponibilizado para solicitações para construir instâncias. |
RegistrationConnectionType |
Define os tipos de conexões com um objeto de classe. |
StringMarshalling |
Especifica como as cadeias de caracteres devem ser empacotadas para p/invokes gerados |
SYSKIND |
Em vez disso, use SYSKIND. |
TYPEFLAGS |
Em vez disso, use TYPEFLAGS. |
TYPEKIND |
Em vez disso, use TYPEKIND. |
TypeLibExporterFlags |
Indica como uma biblioteca de tipos deve ser produzida. |
TypeLibFuncFlags |
Descreve as configurações originais do |
TypeLibImporterFlags |
Indica como um assembly deve ser produzido. |
TypeLibTypeFlags |
Descreve as configurações originais do TYPEFLAGS na biblioteca de tipos COM da qual o tipo foi importado. |
TypeLibVarFlags |
Descreve as configurações originais do VARFLAGS na biblioteca de tipos COM da qual a variável foi importada. |
UnmanagedType |
Identifica como fazer marshaling de parâmetros ou campos para código não gerenciado. |
VarEnum |
Indica como fazer marshaling dos elementos da matriz quando uma matriz é marshalada de código gerenciado para não gerenciado como um SafeArray. |
VARFLAGS |
Em vez disso, use VARFLAGS. |
Delegados
DllImportResolver |
Fornece um delegado usado para resolver bibliotecas nativas por meio de retorno de chamada. |
ObjectCreationDelegate |
Cria um objeto COM. |
Comentários
Os membros desse namespace fornecem várias categorias de funcionalidade, conforme mostrado na tabela a seguir. Os atributos controlam o comportamento de marshaling, como organizar estruturas ou como representar cadeias de caracteres. Os atributos mais importantes são DllImportAttribute, que você usa para definir métodos de invocação de plataforma para acessar APIs não gerenciadas e MarshalAsAttribute, que você usa para especificar como os dados são empacotados entre memória gerenciada e não gerenciada.