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 oferecem 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 com 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 ter o marshaling realizado usando o marshaler de Automação ou um proxy e stub personalizados. |
BestFitMappingAttribute |
Controla se os caracteres Unicode são convertidos em caracteres ANSI correspondentes mais próximos. |
BStrWrapper |
Realiza 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 de fato gerada. |
CoClassAttribute |
Especifica o identificador de classe de coclass importado 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 de um parâmetro ou tipo de campo. |
ComAwareEventInfo |
Permite o registro de associação tardia 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 as classes em uma versão anterior do assembly. |
ComConversionLossAttribute |
Indica que informações sobre uma classe ou interface foram perdidas quando foram importadas de uma biblioteca de tipos para um assembly. |
ComDefaultInterfaceAttribute |
Especifica uma interface padrão para expor 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 do evento é gerado quando uma coclass é importada de uma biblioteca de tipos COM. |
ComEventsHelper |
Fornece métodos que permitem que os delegados do .NET que tratam os eventos sejam adicionados e removidos dos objetos COM. |
COMException |
A exceção é lançada quando um HRESULT não reconhecido retorna de uma chamada de método COM. |
ComImportAttribute |
Indica que o tipo de atributo foi definido anteriormente na COM. |
ComRegisterFunctionAttribute |
Especifica o método a ser chamado quando você registra um assembly para ser usado de COM. Isso habilita a execução de código escrito pelo usuário durante o processo de registro. |
ComSourceInterfacesAttribute |
Identifica uma lista de interfaces que são expostas como origens 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 de COM. Isso possibilita a execução de código escrito pelo usuário durante o processo de cancelamento do registro. |
ComVisibleAttribute |
Controla a acessibilidade de um tipo gerenciado individual ou membro, ou então de todos os tipos em um assembly, ao COM. |
ComWrappers |
Classe para gerenciar wrappers de tipos COM IUnknown. |
CriticalHandle |
Representa uma classe wrapper para os recursos do identificador. |
CurrencyWrapper |
Encapsula objetos que o empacotador deve realizar marshaling como um |
DefaultCharSetAttribute |
Especifica o valor da enumeração CharSet. Essa classe não pode ser herdada. |
DefaultDllImportSearchPathsAttribute |
Especifica os caminhos que são usados para procurar DLLs que fornecem funções para invocações de plataforma. |
DefaultParameterValueAttribute |
Define o valor padrão de um parâmetro, quando chamado de uma linguagem que dá suporte a parâmetros padrão. Essa classe não pode ser herdada. |
DispatchWrapper |
Encapsula objetos que o empacotador deve realizar marshaling como um |
DispIdAttribute |
Especifica o identificador de distribuição (DISPID) 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 empacotador 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 de base para todas as exceções de interoperabilidade COM e exceções estruturadas de manipulação de exceção (SEH). |
FieldOffsetAttribute |
Indica a posição física dos campos dentro de representação não gerenciada de uma classe ou estrutura. |
GuidAttribute |
Fornece um Guid explícito quando um GUID automático for indesejável. |
HandleCollector |
Rastreia identificadores pendentes e força uma coleta de lixo quando é atingido o limite especificado. |
IDispatchImplAttribute |
Indica qual implementação de |
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 dentro de um assembly foram originalmente definidos em uma biblioteca de tipos. |
InAttribute |
Indica que os dados devem passar por marshaling pelo chamador para o receptor, mas não de volta para o chamador. |
InterfaceTypeAttribute |
Indica se uma interface gerenciada é dupla, somente de expedição ou somente de |
InvalidComObjectException |
A exceção lançada quando um objeto COM inválido é usado. |
InvalidOleVariantTypeException |
A exceção gerada pelo marshaler quando este encontra um argumento de um tipo variante que não pode ter o marshaling realizado no código gerenciado. |
LCIDConversionAttribute |
Indica que a assinatura não gerenciada do método espera um parâmetro LCID (identificador de localidade). |
LibraryImportAttribute |
Indica que um gerador de origem deve criar uma função para marshalling de argumentos em vez de depender do runtime para gerar uma função de marshalling equivalente em tempo de execução. |
ManagedToNativeComInteropStubAttribute |
Dá suporte para personalização do usuário de stubs de interoperabilidade em cenários de interoperabilidade gerenciada para COM. |
Marshal |
Fornece um conjunto de métodos para alocar a memória não gerenciada, copiando os blocos de memória não gerenciada e convertendo tipos gerenciados em não gerenciados, bem como outros diversos métodos usados ao interagir com código não gerenciado. |
MarshalAsAttribute |
Indica como realizar marshaling de dados entre código gerenciado e não gerenciado. |
MarshalDirectiveException |
A exceção que é lançada pelo marshaler quando este encontra um MarshalAsAttribute ao qual não oferece 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 passar por marshaling do receptor de volta ao chamador. |
PosixSignalContext |
Fornece dados para um PosixSignalRegistration evento. |
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 .NET. |
SafeArrayRankMismatchException |
A exceção gerada quando a classificação de um |
SafeArrayTypeMismatchException |
A exceção gerada quando o tipo de |
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 (falhas e estouros) geram exceções. |
SafeHandle |
Representa uma classe wrapper para identificadores do sistema operacional. Essa classe deve ser herdada. |
SEHException |
Representa erros de SEH (Manipulação de Exceção Estruturada). |
SequenceMarshal |
Fornece uma coleção de métodos para interoperar com o ReadOnlySequence<T>. |
SetWin32ContextInIDispatchAttribute |
Esse atributo foi substituído. |
StandardOleMarshalObject |
Substitui o marshaler free-thread padrão do CLR (Common Language Runtime) 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 deverá ser ignorada quando uma chamada de função não gerenciada for feita. |
TypeIdentifierAttribute |
Dá suporte à 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 o FUNCFLAGS que foi originalmente importado 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 o TYPEFLAGS que foi originalmente importado para esse tipo da biblioteca de tipos COM. |
TypeLibVarAttribute |
Contém o VARFLAGS que foi originalmente importado 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 empacotador 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 |
Métodos marcados com UnmanagedCallersOnlyAttribute podem ser chamados diretamente do código nativo. É possível carregar o token de função em uma variável local usando o operador address-of no C# e transmiti-lo como um retorno de chamada para um método nativo. |
UnmanagedFunctionPointerAttribute |
Controla o comportamento de marshaling de uma assinatura do delegado passado como um ponteiro de função não gerenciada de ou para código não gerenciado. Essa classe não pode ser herdada. |
VariantWrapper |
Realiza marshaling de dados do tipo |
WasmImportLinkageAttribute |
Fornece uma ampla variedade de membros que oferecem 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 com código não gerenciado. |
Estruturas
ArrayWithOffset |
Encapsula uma matriz e um deslocamento dentro da matriz especificada. |
BIND_OPTS |
Use BIND_OPTS em vez disso. |
BINDPTR |
Use BINDPTR em vez disso. |
CLong |
CLong é um tipo de valor imutável que representa o |
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 a Vtable de destino. |
CONNECTDATA |
Use CONNECTDATA em vez disso. |
CULong |
CULong é um tipo de valor imutável que representa o |
DISPPARAMS |
Use DISPPARAMS em vez disso. |
ELEMDESC |
Use ELEMDESC em vez disso. |
ELEMDESC.DESCUNION |
Use ELEMDESC.DESCUNION em vez disso. |
EXCEPINFO |
Use EXCEPINFO em vez disso. |
FILETIME |
Use FILETIME em vez disso. |
FUNCDESC |
Use FUNCDESC em vez disso. |
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 |
Use IDLDESC em vez disso. |
NFloat |
NFloat é um tipo de valor imutável que representa um tipo flutuante que tem o mesmo tamanho que o 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 C ou C++s |
OSPlatform |
Representa uma plataforma do sistema operacional. |
PARAMDESC |
Use PARAMDESC em vez disso. |
STATSTG |
Use STATSTG em vez disso. |
TYPEATTR |
Use TYPEATTR em vez disso. |
TYPEDESC |
Use TYPEDESC em vez disso. |
TYPELIBATTR |
Use TYPELIBATTR em vez disso. |
VARDESC |
Use VARDESC em vez disso. |
VARDESC.DESCUNION |
Use VARDESC.DESCUNION em vez disso. |
Interfaces
_Activator |
Expõe a classe Activator para código não gerenciado. |
_Assembly |
Expõe os membros públicos da classe Assembly a código não gerenciado. |
_AssemblyBuilder |
Expõe a classe AssemblyBuilder para código não gerenciado. |
_AssemblyName |
Expõe a classe AssemblyName para código não gerenciado. |
_Attribute |
Expõe a classe Attribute para código não gerenciado. |
_ConstructorBuilder |
Expõe a classe ConstructorBuilder para código não gerenciado. |
_ConstructorInfo |
Expõe os membros públicos da classe ConstructorInfo a código não gerenciado. |
_CustomAttributeBuilder |
Expõe a classe CustomAttributeBuilder para código não gerenciado. |
_EnumBuilder |
Expõe a classe EnumBuilder para código não gerenciado. |
_EventBuilder |
Expõe a classe EventBuilder para código não gerenciado. |
_EventInfo |
Expõe os membros públicos da classe EventInfo a código não gerenciado. |
_Exception |
Expõe os membros públicos da classe Exception a código não gerenciado. |
_FieldBuilder |
Expõe a classe FieldBuilder para código não gerenciado. |
_FieldInfo |
Expõe os membros públicos da classe FieldInfo a código não gerenciado. |
_ILGenerator |
Expõe a classe ILGenerator para código não gerenciado. |
_LocalBuilder |
Expõe a classe LocalBuilder para código não gerenciado. |
_MemberInfo |
Expõe os membros públicos da classe MemberInfo a código não gerenciado. |
_MethodBase |
Expõe os membros públicos da classe MethodBase a código não gerenciado. |
_MethodBuilder |
Expõe a classe MethodBuilder para código não gerenciado. |
_MethodInfo |
Expõe os membros públicos da classe MethodInfo a código não gerenciado. |
_MethodRental |
Expõe a classe MethodRental para código não gerenciado. |
_Module |
Expõe a classe Module para código não gerenciado. |
_ModuleBuilder |
Expõe a classe ModuleBuilder para código não gerenciado. |
_ParameterBuilder |
Expõe a classe ParameterBuilder para código não gerenciado. |
_ParameterInfo |
Expõe a classe ParameterInfo para código não gerenciado. |
_PropertyBuilder |
Expõe a classe PropertyBuilder para código não gerenciado. |
_PropertyInfo |
Expõe os membros públicos da classe PropertyInfo a código não gerenciado. |
_SignatureHelper |
Expõe a classe SignatureHelper para código não gerenciado. |
_Thread |
Expõe a classe Thread para 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 para código não gerenciado. |
ICustomAdapter |
Fornece uma maneira para que os clientes acessem o objeto real, em vez do objeto adaptador entregue por um marshaler personalizado. |
ICustomFactory |
Permite que usuários gravem o código de ativação para os objetos gerenciados que estendem MarshalByRefObject. |
ICustomMarshaler |
Fornece wrappers personalizados para manipular chamadas de método. |
ICustomQueryInterface |
Habilita os desenvolvedores a fornecerem uma implementação personalizada gerenciada 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 dos nomes quando exportado para uma biblioteca de tipos. |
ITypeLibExporterNotifySink |
Fornece um mecanismo de retorno de chamada para o conversor de assembly para informar o chamador do status da conversão e envolver o chamador no processo de conversão em si. |
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 envolve o chamador no processo de conversão em si. |
UCOMIBindCtx |
Use BIND_OPTS em vez disso. |
UCOMIConnectionPoint |
Use IConnectionPoint em vez disso. |
UCOMIConnectionPointContainer |
Use IConnectionPointContainer em vez disso. |
UCOMIEnumConnectionPoints |
Use IEnumConnectionPoints em vez disso. |
UCOMIEnumConnections |
Use IEnumConnections em vez disso. |
UCOMIEnumMoniker |
Use IEnumMoniker em vez disso. |
UCOMIEnumString |
Use IEnumString em vez disso. |
UCOMIEnumVARIANT |
Use IEnumVARIANT em vez disso. |
UCOMIMoniker |
Use IMoniker em vez disso. |
UCOMIPersistFile |
Use IPersistFile em vez disso. |
UCOMIRunningObjectTable |
Use IRunningObjectTable em vez disso. |
UCOMIStream |
Use IStream em vez disso. |
UCOMITypeComp |
Use ITypeComp em vez disso. |
UCOMITypeInfo |
Use ITypeInfo em vez disso. |
UCOMITypeLib |
Use ITypeLib em vez disso. |
Enumerações
Architecture |
Indica a arquitetura do processador. |
AssemblyRegistrationFlags |
Define um conjunto de sinalizadores usados ao registrar assemblies. |
CALLCONV |
Use CALLCONV em vez disso. |
CallingConvention |
Especifica a convenção de chamada necessária para chamar os métodos implementados em código não gerenciado. |
CharSet |
Impõe qual conjunto de caracteres as cadeias de caracteres com marshaling devem usar. |
ClassInterfaceType |
Identifica o tipo de interface de classe que é gerado para uma classe. |
ComInterfaceType |
Identifica como expor uma interface a COM. |
ComMemberType |
Descreve o tipo de um membro de COM. |
CreateComInterfaceFlags |
Especifica os sinalizadores para o método GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags). |
CreateObjectFlags |
Especifica os sinalizadores para o método GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags). |
CustomQueryInterfaceMode |
Indica se as chamadas de IUnknown::QueryInterface do método GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) podem usar a interface ICustomQueryInterface. |
CustomQueryInterfaceResult |
Fornece valores retornados para o método GetInterface(Guid, IntPtr). |
DESCKIND |
Use DESCKIND em vez disso. |
DllImportSearchPath |
Especifica os caminhos que são usados para procurar DLLs que fornecem funções para invocações de plataforma. |
ExporterEventKind |
Descreve os retornos de chamada feitos pelo exportador da biblioteca ao exportar uma biblioteca de tipos. |
FUNCFLAGS |
Use FUNCFLAGS em vez disso. |
FUNCKIND |
Use FUNCKIND em vez disso. |
GCHandleType |
Representa os tipos de identificadores que o GCHandle tipo pode alocar. |
IDispatchImplType |
Indica qual implementação de |
IDLFLAG |
Use IDLFLAG em vez disso. |
IMPLTYPEFLAGS |
Use IMPLTYPEFLAGS em vez disso. |
ImporterEventKind |
Descreve os retornos de chamada feitos pelo importador da biblioteca ao importar uma biblioteca de tipos. |
INVOKEKIND |
Use INVOKEKIND em vez disso. |
LayoutKind |
Controla o layout de um objeto quando exportado para o código não gerenciado. |
LIBFLAGS |
Use LIBFLAGS em vez disso. |
PARAMFLAG |
Use PARAMFLAG em vez disso. |
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 instâncias de constructo. |
RegistrationConnectionType |
Define os tipos de conexões com um objeto de classe. |
StringMarshalling |
Especifica como as cadeias de caracteres devem ter marshaling para p/invokes gerados |
SYSKIND |
Use SYSKIND em vez disso. |
TYPEFLAGS |
Use TYPEFLAGS em vez disso. |
TYPEKIND |
Use TYPEKIND em vez disso. |
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 esse tipo foi importado. |
TypeLibVarFlags |
Descreve as configurações originais do VARFLAGS na biblioteca de tipos COM de que a variável foi importada. |
UnmanagedType |
Identifica como realizar marshaling de parâmetros ou campos para código não gerenciado. |
VarEnum |
Indica como realizar marshaling dos elementos da matriz quando uma matriz passa por marshaling do código gerenciado para não gerenciado como um SafeArray. |
VARFLAGS |
Use VARFLAGS em vez disso. |
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 a memória gerenciada e não gerenciada.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários