Compartilhar via


Método Marshal.CreateWrapperOfType (Object, Type)

 

Dica

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Encapsula o objeto COM indicado em um objeto do tipo especificado.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Sintaxe

[SecurityCriticalAttribute]
public static object CreateWrapperOfType(
    object o,
    Type t
)
public:
[SecurityCriticalAttribute]
static Object^ CreateWrapperOfType(
    Object^ o,
    Type^ t
)
[<SecurityCriticalAttribute>]
static member CreateWrapperOfType : 
        o:Object *
        t:Type -> Object
<SecurityCriticalAttribute>
Public Shared Function CreateWrapperOfType (
    o As Object,
    t As Type
) As Object

Parâmetros

Valor Retornado

Type: System.Object

O objeto encapsulado recém-encapsulado é uma instância do tipo desejado.

Exceções

Exception Condition
ArgumentException

t deve derivar de __ComObject.

-ou-

t é um tipo Tempo de Execução do Windows.

ArgumentNullException

O parâmetro t é null.

InvalidCastException

o não pode ser convertido no tipo de destino porque ele não dá suporte a todas as interfaces necessárias.

Comentários

CreateWrapperOfTypeConverte um tipo de classe COM, normalmente genérica __ComObject tipo em outro tipo de classe COM. O objeto COM entrada, representado pelo parâmetro o, é um RCW (Runtime Callable Wrapper) (RCW).

Tanto o t e o classes cujas assinaturas são atribuídas com os parâmetros devem ser System.Runtime.InteropServices.ComImportAttribute. O Tlbimp.exe (Importador de Biblioteca de Tipos) ferramenta aplica esse atributo para você quando importa uma biblioteca de tipos. Se você criar manualmente o RCW no código-fonte, você deve aplicar esse atributo para a assinatura gerenciada que representa o coclass original para mostrar suas origens COM.

Tlbimp.exe importa uma COM coclass como uma classe gerenciada e uma interface. A interface de coclass tem o mesmo nome de coclass original e a classe gerenciada com o nome de coclass original acrescentado com "Class". Por exemplo, uma coclass chamado MyCoclass torna-se uma interface coclass chamada MyCoclass e uma classe gerenciada chamada MyCoclassClass. Como t deve ser uma classe, não uma interface, certifique-se de especificar a classe gerenciada (MyCoclassClass) e não a interface coclass.

Dica

Você perderá a identidade da entrada COM o objeto, pois uma nova instância RCW encapsula o IUnknown ponteiro exposto pelo RCW original.

Segurança

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Informações de Versão

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Windows Phone
Disponível desde 8.1

Confira Também

ComImportAttribute
CreateWrapperOfType Sobrecarga
Classe Marshal
Namespace System.Runtime.InteropServices

Retornar ao início