Condividi tramite


Marshal.CreateWrapperOfType Metodo

Definizione

Overload

CreateWrapperOfType(Object, Type)
Obsoleti.

Include l'oggetto COM specificato in un oggetto del tipo specificato.

CreateWrapperOfType<T,TWrapper>(T)

Include l'oggetto COM specificato in un oggetto del tipo specificato.

CreateWrapperOfType(Object, Type)

Origine:
Marshal.NoCom.cs
Origine:
Marshal.NoCom.cs
Origine:
Marshal.NoCom.cs

Attenzione

CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519

Include l'oggetto COM specificato in un oggetto del tipo specificato.

public:
 static System::Object ^ CreateWrapperOfType(System::Object ^ o, Type ^ t);
[System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")]
[System.Security.SecurityCritical]
public static object CreateWrapperOfType (object o, Type t);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object? CreateWrapperOfType (object? o, Type t);
[System.Security.SecurityCritical]
public static object CreateWrapperOfType (object o, Type t);
public static object CreateWrapperOfType (object o, Type t);
public static object? CreateWrapperOfType (object? o, Type t);
[<System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")>]
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
static member CreateWrapperOfType : obj * Type -> obj
Public Shared Function CreateWrapperOfType (o As Object, t As Type) As Object

Parametri

o
Object

Oggetto da includere.

t
Type

Tipo di wrapper da creare.

Restituisce

L'oggetto appena incluso che è un'istanza del tipo desiderato.

Attributi

Eccezioni

t deve derivare da __ComObject.

-oppure-

t è un tipo Windows Runtime.

Il valore del parametro t è null.

Non è possibile convertire o nel tipo di destinazione perché non supporta tutte le interfacce richieste.

Commenti

CreateWrapperOfType converte un tipo di classe COM, in genere il tipo di base __ComObject , in un altro tipo di classe COM. L'oggetto COM di input, rappresentato dal parametro o, è un Runtime Callable Wrapper (RCW).

Entrambi i t parametri e o devono essere classi le cui firme sono attribuite a System.Runtime.InteropServices.ComImportAttribute. Lo strumento Tlbimp.exe (utilità di importazione libreria dei tipi) applica questo attributo quando importa una libreria dei tipi. Se si crea manualmente rcw nel codice sorgente, è necessario applicare questo attributo alla firma gestita che rappresenta la coclasse originale per indicare le origini COM.

Tlbimp.exe importa una coclasse COM come classe gestita e un'interfaccia. L'interfaccia della coclasse ha lo stesso nome della coclasse originale e la classe gestita ha il nome della coclasse originale aggiunto con "Class". Ad esempio, una coclasse denominata MyCoclass diventa un'interfaccia di coclasse denominata MyCoclass e una classe gestita denominata MyCoclassClass. Poiché t deve essere una classe, non un'interfaccia, assicurarsi di specificare la classe gestita (MyCoclassClass) e non l'interfaccia della coclasse.

Nota

Si perde l'identità dell'oggetto COM di input perché una nuova istanza RCW esegue il wrapping del puntatore IUnknown esposto dall'RCW originale.

Vedi anche

Si applica a

CreateWrapperOfType<T,TWrapper>(T)

Origine:
Marshal.NoCom.cs
Origine:
Marshal.NoCom.cs
Origine:
Marshal.NoCom.cs

Include l'oggetto COM specificato in un oggetto del tipo specificato.

public:
generic <typename T, typename TWrapper>
 static TWrapper CreateWrapperOfType(T o);
[System.Security.SecurityCritical]
public static TWrapper CreateWrapperOfType<T,TWrapper> (T o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static TWrapper CreateWrapperOfType<T,TWrapper> (T? o);
public static TWrapper CreateWrapperOfType<T,TWrapper> (T o);
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : 'T -> 'Wrapper
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : 'T -> 'Wrapper
static member CreateWrapperOfType : 'T -> 'Wrapper
Public Shared Function CreateWrapperOfType(Of T, TWrapper) (o As T) As TWrapper

Parametri di tipo

T

Tipo di oggetto di cui eseguire il wrapping.

TWrapper

Tipo di oggetto da restituire.

Parametri

o
T

Oggetto da includere.

Restituisce

TWrapper

Oggetto appena incluso.

Attributi

Eccezioni

T deve derivare da __ComObject.

-oppure-

T è un tipo Windows Runtime.

o non può essere convertito in TWrapper perché non supporta tutte le interfacce richieste.

Commenti

CreateWrapperOfType<T,TWrapper>(T) converte un oggetto COM di tipo T nel TWrapper tipo di classe COM. L'oggetto COM di input, rappresentato dal parametro o, è un Runtime Callable Wrapper (RCW).

Sia il T parametro di tipo generico che il o parametro devono essere classi le cui firme sono attribuite con l'attributo System.Runtime.InteropServices.ComImportAttribute . Lo strumento Tlbimp.exe (utilità di importazione libreria dei tipi) applica questo attributo quando importa una libreria dei tipi. Se si crea manualmente rcw nel codice sorgente, è necessario applicare questo attributo alla firma gestita che rappresenta la coclasse originale per indicare le origini COM.

Tlbimp.exe importa una coclasse COM come classe gestita e un'interfaccia. L'interfaccia della coclasse ha lo stesso nome della coclasse originale e la classe gestita ha il nome della coclasse originale aggiunto con "Class". Ad esempio, una coclasse denominata MyCoclass diventa un'interfaccia di coclasse denominata MyCoclass e una classe gestita denominata MyCoclassClass. PoichéT deve essere una classe, non un'interfaccia, assicurarsi di specificare la classe gestita (MyCoclassClass) e non l'interfaccia coclass .

Nota

Si perde l'identità dell'oggetto COM di input, perché una nuova istanza RCW esegue il wrapping del puntatore IUnknown esposto dall'RCW originale.

Si applica a