Marshal.CreateWrapperOfType Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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
Oggetto appena incluso.
- Attributi
Eccezioni
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.