System.Runtime.InteropServices Espaço de Nomes

Disponibiliza uma grande variedade de membros que suportam serviços de interoperabilidade COM e invocação de plataforma. Se não estiver familiarizado com estes serviços, consulte Interoperar com Código Não Gerido.

Classes

Name Description
AllowReversePInvokeCallsAttribute

Permite que um método não gerido chame um método gerido.

AutomationProxyAttribute

Especifica se o tipo deve ser marshalizado usando o marshaler de Automação ou um proxy e stub personalizados.

BestFitMappingAttribute

Controla se os caracteres Unicode são convertidos para os caracteres ANSI correspondentes mais próximos.

BStrWrapper

Organiza dados do tipo VT_BSTR , desde código gerido até código não gerido. Esta classe não pode ser herdada.

ClassInterfaceAttribute

Indica o tipo de interface de classe a ser gerada para uma classe exposta ao COM, caso uma interface seja gerada.

CoClassAttribute

Especifica o identificador de classe de uma coclasse importada de uma biblioteca de tipos.

ComAliasNameAttribute

Indica o alias COM para um parâmetro ou tipo de campo.

ComAwareEventInfo

Permite o registo tardio de um gestor 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 de uma versão anterior do assembly.

ComConversionLossAttribute

Indica que a informação sobre uma classe ou interface foi perdida quando foi importada de uma biblioteca de tipos para uma assembleia.

ComDefaultInterfaceAttribute

Especifica uma interface padrão para expor ao COM. Esta classe não pode ser herdada.

ComEventInterfaceAttribute

Identifica a interface de origem e a classe que implementa os métodos da interface de eventos gerados quando uma coclasse é importada de uma biblioteca de tipos COM.

ComEventsHelper

Fornece métodos que permitem delegados .NET que gerem a adição e remoção de eventos dos objetos COM.

COMException

A exceção que é lançada quando um HRESULT não reconhecido é devolvido de uma chamada de método COM.

ComImportAttribute

Indica que o tipo atribuído foi previamente definido no COM.

ComRegisterFunctionAttribute

Especifica o método a chamar quando registas um assembly para uso a partir do COM; Isto permite a execução de código escrito pelo utilizador durante o processo de registo.

ComSourceInterfacesAttribute

Identifica uma lista de interfaces que são expostas como fontes de eventos COM para a classe atribuída.

ComUnregisterFunctionAttribute

Especifica o método a chamar quando se desregista um assembly para uso a partir do COM; Isto permite a execução de código escrito pelo utilizador durante o processo de desregisto.

ComVisibleAttribute

Controla a acessibilidade de um tipo ou membro individual gerido, ou de todos os tipos dentro de uma assembleia, ao COM.

CriticalHandle

Representa uma classe wrapper para recursos de handles.

CurrencyWrapper

Envolve objetos que o marshaler deve fazer marshal como um VT_CY.

DefaultCharSetAttribute

Especifica o valor da CharSet enumeração. Esta 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 a partir de uma linguagem que suporta parâmetros por defeito. Esta classe não pode ser herdada.

DispatchWrapper

Envolve objetos que o marshaler deve fazer marshal como um VT_DISPATCH.

DispIdAttribute

Especifica o identificador de despacho COM (DISPID) de um método, campo ou propriedade.

DllImportAttribute

Indica que o método atribuído é exposto por uma biblioteca de ligação dinâmica (DLL) não gerida como ponto de entrada estático.

ErrorWrapper

Envolve objetos que o marshaler deve fazer marshal como um VT_ERROR.

ExtensibleClassFactory

Permite a personalização de objetos geridos que se estendem a partir de objetos não geridos durante a criação.

ExternalException

O tipo base de exceção para todas as exceções de interoperabilidade COM e exceções de gestão estruturada de exceções (SEH).

FieldOffsetAttribute

Indica a posição física dos campos dentro da representação não gerida de uma classe ou estrutura.

GuidAttribute

Fornece um aviso explícito Guid quando um GUID automático é indesejável.

HandleCollector

Regista os restantes e força uma recolha de lixo quando o limiar especificado é atingido.

IDispatchImplAttribute

Indica qual IDispatch implementação a linguagem comum de execução utiliza ao expor interfaces e disinterfaces duplas ao COM.

ImportedFromTypeLibAttribute

Indica que os tipos definidos dentro de um assembly foram originalmente definidos numa biblioteca de tipos.

InAttribute

Indica que os dados devem ser direcionados do chamador para o chamado, mas não de volta ao chamador.

InterfaceTypeAttribute

Indica se uma interface gerida é dual, apenas de despacho ou IUnknown -only quando exposta ao COM.

InvalidComObjectException

A exceção lançada quando um objeto COM inválido é utilizado.

InvalidOleVariantTypeException

A exceção lançada pelo marshaler quando encontra um argumento de um tipo variante que não pode ser escalalado para código gerido.

LCIDConversionAttribute

Indica que a assinatura não gerida de um método espera um parâmetro de identificador local (LCID).

ManagedToNativeComInteropStubAttribute

Fornece suporte para personalização por parte do utilizador de stubs de interoperabilidade em cenários de interoperabilidade gerida para COM.

Marshal

Fornece uma coleção de métodos para alocar memória não gerida, copiar blocos de memória não geridos e converter tipos gerenciados para tipos não geridos, bem como outros métodos diversos usados ao interagir com código não gerido.

MarshalAsAttribute

Indica como organizar os dados entre código gerido e não gerido.

MarshalDirectiveException

A exceção que é lançada pelo marshaler quando encontra um MarshalAsAttribute que não suporta.

MemoryMarshal

Fornece métodos para interoperar com Memory<T>, ReadOnlyMemory<T>, Span<T>, e ReadOnlySpan<T>.

OptionalAttribute

Indica que um parâmetro é opcional.

OutAttribute

Indica que os dados devem ser orientados do chamado de volta para o chamador.

PreserveSigAttribute

Indica que a transformação da assinatura HRESULT que ocorre durante as chamadas de interoperabilidade COM deve ser suprimida.

PrimaryInteropAssemblyAttribute

Indica que a montagem atribuída é uma assembleia interop primária.

ProgIdAttribute

Permite ao utilizador especificar o ProgID de uma classe.

RegistrationServices

Fornece um conjunto de serviços para registar e desregistar assemblies geridos para utilização a partir do COM.

RuntimeEnvironment

Fornece uma coleção de static métodos que retornam informação sobre o ambiente de execução da linguagem comum.

RuntimeInformation

Fornece informações sobre a instalação em tempo de execução .NET.

SafeArrayRankMismatchException

A exceção lançada quando o posto de um recém-chegado SAFEARRAY não corresponde ao posto especificado na assinatura gerida.

SafeArrayTypeMismatchException

A exceção lançada quando o tipo da entrada SAFEARRAY não corresponde ao tipo especificado na assinatura gerida.

SafeBuffer

Fornece um buffer de memória controlado que pode ser usado para leitura e escrita. Tentativas de aceder à memória fora do buffer controlado (underruns e overstocks) geram exceções.

SafeHandle

Representa uma classe wrapper para handles do sistema operativo. Esta classe tem de ser herdada.

SEHException

Representa erros de gestão estruturada de exceções (SEH).

SequenceMarshal

Fornece um conjunto de métodos para interoperar com ReadOnlySequence<T>.

SetWin32ContextInIDispatchAttribute

Este atributo foi preterido.

StandardOleMarshalObject

Substitui o marshaler padrão de execução em linguagem comum (CLR) por um marshaler padrão OLE STA.

StructLayoutAttribute

Permite controlar a disposição física dos campos de dados de uma classe ou estrutura na memória.

TypeIdentifierAttribute

Fornece suporte para equivalência de tipos.

TypeLibConverter

Fornece um conjunto de serviços que convertem um assembly gerido numa biblioteca do tipo COM e vice-versa.

TypeLibFuncAttribute

Contém os FUNCFLAGS que foram originalmente importados para este método a partir da biblioteca de tipos COM.

TypeLibImportClassAttribute

Especifica qual Type usa exclusivamente uma interface. Esta classe não pode ser herdada.

TypeLibTypeAttribute

Contém os TYPEFLAGS que foram originalmente importados para este tipo a partir da biblioteca de tipos COM.

TypeLibVarAttribute

Contém os VARFLAGS que foram originalmente importados para este campo a partir da biblioteca de tipos COM.

TypeLibVersionAttribute

Especifica o número de versão de uma biblioteca de tipos exportada.

UnknownWrapper

Envolve objetos que o marshaler deve fazer marshal como um VT_UNKNOWN.

UnmanagedFunctionPointerAttribute

Controla o comportamento de marshaling de uma assinatura de delegado passada como um apontador de função não gerida para ou a partir de código não gerido. Esta classe não pode ser herdada.

VariantWrapper

Organiza dados do tipo VT_VARIANT | VT_BYREF , desde código gerido até código não gerido. Esta classe não pode ser herdada.

Estruturas

Name Description
ArrayWithOffset

Encapsula um array e um offset dentro do array especificado.

BIND_OPTS

Utilize BIND_OPTS em substituição.

BINDPTR

Utilize BINDPTR em substituição.

CONNECTDATA

Utilize CONNECTDATA em substituição.

DISPPARAMS

Utilize DISPPARAMS em substituição.

ELEMDESC

Utilize ELEMDESC em substituição.

ELEMDESC.DESCUNION

Utilize ELEMDESC.DESCUNION em substituição.

EXCEPINFO

Utilize EXCEPINFO em substituição.

FILETIME

Utilize FILETIME em substituição.

FUNCDESC

Utilize FUNCDESC em substituição.

GCHandle

Fornece uma forma de aceder a um objeto gerido a partir de memória não gerida.

HandleRef

Envolve um objeto gerido que contém um handle a um recurso que é passado para código não gerido usando platform invoke.

IDLDESC

Utilize IDLDESC em substituição.

OSPlatform

Representa uma plataforma de sistema operativo.

PARAMDESC

Utilize PARAMDESC em substituição.

STATSTG

Utilize STATSTG em substituição.

TYPEATTR

Utilize TYPEATTR em substituição.

TYPEDESC

Utilize TYPEDESC em substituição.

TYPELIBATTR

Utilize TYPELIBATTR em substituição.

VARDESC

Utilize VARDESC em substituição.

VARDESC.DESCUNION

Utilize VARDESC.DESCUNION em substituição.

Interfaces

Name Description
_Activator

Expõe a Activator classe a código não gerido.

_Assembly

Expõe os membros públicos da Assembly turma a código não gerido.

_AssemblyBuilder

Expõe a AssemblyBuilder classe a código não gerido.

_AssemblyName

Expõe a AssemblyName classe a código não gerido.

_Attribute

Expõe a Attribute classe a código não gerido.

_ConstructorBuilder

Expõe a ConstructorBuilder classe a código não gerido.

_ConstructorInfo

Expõe os membros públicos da ConstructorInfo turma a código não gerido.

_CustomAttributeBuilder

Expõe a CustomAttributeBuilder classe a código não gerido.

_EnumBuilder

Expõe a EnumBuilder classe a código não gerido.

_EventBuilder

Expõe a EventBuilder classe a código não gerido.

_EventInfo

Expõe os membros públicos da EventInfo turma a código não gerido.

_Exception

Expõe os membros públicos da Exception turma a código não gerido.

_FieldBuilder

Expõe a FieldBuilder classe a código não gerido.

_FieldInfo

Expõe os membros públicos da FieldInfo turma a código não gerido.

_ILGenerator

Expõe a ILGenerator classe a código não gerido.

_LocalBuilder

Expõe a LocalBuilder classe a código não gerido.

_MemberInfo

Expõe os membros públicos da MemberInfo turma a código não gerido.

_MethodBase

Expõe os membros públicos da MethodBase turma a código não gerido.

_MethodBuilder

Expõe a MethodBuilder classe a código não gerido.

_MethodInfo

Expõe os membros públicos da MethodInfo turma a código não gerido.

_MethodRental

Expõe a MethodRental classe a código não gerido.

_Module

Expõe a Module classe a código não gerido.

_ModuleBuilder

Expõe a ModuleBuilder classe a código não gerido.

_ParameterBuilder

Expõe a ParameterBuilder classe a código não gerido.

_ParameterInfo

Expõe a ParameterInfo classe a código não gerido.

_PropertyBuilder

Expõe a PropertyBuilder classe a código não gerido.

_PropertyInfo

Expõe os membros públicos da PropertyInfo turma a código não gerido.

_SignatureHelper

Expõe a SignatureHelper classe a código não gerido.

_Thread

Expõe a Thread classe a código não gerido.

_Type

Expõe os membros públicos da Type turma ao código não gerido.

_TypeBuilder

Expõe a TypeBuilder classe a código não gerido.

ICustomAdapter

Fornece uma forma para os clientes acedirem ao objeto real, em vez do objeto adaptador fornecido por um marshaler personalizado.

ICustomFactory

Permite aos utilizadores escrever código de ativação para objetos geridos que estendem MarshalByRefObject.

ICustomMarshaler

Fornece wrappers personalizados para lidar com chamadas de métodos.

ICustomQueryInterface

Permite aos programadores fornecer uma implementação personalizada e gerida do método IUnknown::QueryInterface(REFIID riid, void **ppvObject).

IRegistrationServices

Fornece um conjunto de serviços para registar e desregistar assemblies geridos para utilização a partir do COM.

ITypeLibConverter

Fornece um conjunto de serviços que convertem um assembly gerido numa biblioteca do tipo COM e vice-versa.

ITypeLibExporterNameProvider

Fornece controlo sobre a maiúscula dos nomes quando exportados para uma biblioteca de tipos.

ITypeLibExporterNotifySink

Fornece um mecanismo de callback para o conversor de montagem informar o chamador do estado da conversão e envolver o chamador no próprio processo de conversão.

ITypeLibImporterNotifySink

Fornece um mecanismo de callback para o conversor da biblioteca de tipos informar o chamador sobre o estado da conversão, envolvendo o chamador no próprio processo de conversão.

UCOMIBindCtx

Utilize BIND_OPTS em substituição.

UCOMIConnectionPoint

Utilize IConnectionPoint em substituição.

UCOMIConnectionPointContainer

Utilize IConnectionPointContainer em substituição.

UCOMIEnumConnectionPoints

Utilize IEnumConnectionPoints em substituição.

UCOMIEnumConnections

Utilize IEnumConnections em substituição.

UCOMIEnumMoniker

Utilize IEnumMoniker em substituição.

UCOMIEnumString

Utilize IEnumString em substituição.

UCOMIEnumVARIANT

Utilize IEnumVARIANT em substituição.

UCOMIMoniker

Utilize IMoniker em substituição.

UCOMIPersistFile

Utilize IPersistFile em substituição.

UCOMIRunningObjectTable

Utilize IRunningObjectTable em substituição.

UCOMIStream

Utilize IStream em substituição.

UCOMITypeComp

Utilize ITypeComp em substituição.

UCOMITypeInfo

Utilize ITypeInfo em substituição.

UCOMITypeLib

Utilize ITypeLib em substituição.

Enumerações

Name Description
Architecture

Indica a arquitetura do processador.

AssemblyRegistrationFlags

Define um conjunto de flags usados ao registar assemblies.

CALLCONV

Utilize CALLCONV em substituição.

CallingConvention

Especifica a convenção de chamada necessária para chamar métodos implementados em código não gerido.

CharSet

Determina que conjunto de caracteres as strings marshaled devem usar.

ClassInterfaceType

Identifica o tipo de interface de classe que é gerada para uma classe.

ComInterfaceType

Identifica como expor uma interface ao COM.

ComMemberType

Descreve o tipo de membro do COM.

CustomQueryInterfaceMode

Indica se as GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) chamadas IUnknown::QueryInterface do método podem usar a ICustomQueryInterface interface.

CustomQueryInterfaceResult

Fornece valores de retorno para o GetInterface(Guid, IntPtr) método.

DESCKIND

Utilize DESCKIND em substituição.

DllImportSearchPath

Especifica os caminhos que são usados para procurar DLLs que fornecem funções para invocações de plataforma.

ExporterEventKind

Descreve os callbacks que o exportador da biblioteca de tipos faz ao exportar uma biblioteca de tipos.

FUNCFLAGS

Utilize FUNCFLAGS em substituição.

FUNCKIND

Utilize FUNCKIND em substituição.

GCHandleType

Representa os tipos de alças que o GCHandle tipo pode alocar.

IDispatchImplType

Indica qual IDispatch implementação usar para uma determinada classe.

IDLFLAG

Utilize IDLFLAG em substituição.

IMPLTYPEFLAGS

Utilize IMPLTYPEFLAGS em substituição.

ImporterEventKind

Descreve os callbacks que o importador de biblioteca de tipos faz ao importar uma biblioteca de tipos.

INVOKEKIND

Utilize INVOKEKIND em substituição.

LayoutKind

Controla o layout de um objeto quando exportado para código não gerido.

LIBFLAGS

Utilize LIBFLAGS em substituição.

PARAMFLAG

Utilize PARAMFLAG em substituição.

RegistrationClassContext

Especifica o conjunto de contextos de execução em que um objeto de classe será disponibilizado para pedidos de construção de instâncias.

RegistrationConnectionType

Define os tipos de ligações a um objeto de classe.

SYSKIND

Utilize SYSKIND em substituição.

TYPEFLAGS

Utilize TYPEFLAGS em substituição.

TYPEKIND

Utilize TYPEKIND em substituição.

TypeLibExporterFlags

Indica como uma biblioteca de tipos deve ser produzida.

TypeLibFuncFlags

Descreve as definições originais do FUNCFLAGS na biblioteca de tipos COM de onde este método foi importado.

TypeLibImporterFlags

Indica como um conjunto deve ser produzido.

TypeLibTypeFlags

Descreve as definições originais da TYPEFLAGS biblioteca de tipos COM de onde o tipo foi importado.

TypeLibVarFlags

Descreve as definições originais da VARFLAGS biblioteca de tipos COM de onde a variável foi importada.

UnmanagedType

Identifica como escalar parâmetros ou campos para código não gerido.

VarEnum

Indica como fazer o marshal dos elementos do array quando um array é marshaled de código gerido para código não gerido como um SafeArray.

VARFLAGS

Utilize VARFLAGS em substituição.

Delegados

Name Description
ObjectCreationDelegate

Cria um objeto COM.

Observações

Os membros deste namespace fornecem várias categorias de funcionalidades, como mostrado na tabela seguinte. Os atributos controlam o comportamento de marshaling, como como organizar estruturas ou como representar strings. Os atributos mais importantes são DllImportAttribute, que se usam para definir métodos de invocação de plataforma para aceder a APIs não geridas, e MarshalAsAttribute, que se usam para especificar como os dados são organizados entre memória gerida e não gerida.