Marshal.CreateWrapperOfType Yöntem

Tanım

Aşırı Yüklemeler

CreateWrapperOfType(Object, Type)
Geçersiz.

Belirtilen COM nesnesini belirtilen türdeki bir nesneye sarmalar.

CreateWrapperOfType<T,TWrapper>(T)

Belirtilen COM nesnesini belirtilen türdeki bir nesneye sarmalar.

CreateWrapperOfType(Object, Type)

Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs

Dikkat

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

Belirtilen COM nesnesini belirtilen türdeki bir nesneye sarmalar.

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

Parametreler

o
Object

Sarmalanacak nesne.

t
Type

Oluşturulacak sarmalayıcı türü.

Döndürülenler

İstenen türün bir örneği olan yeni sarmalanan nesne.

Öznitelikler

Özel durumlar

t ' den __ComObjecttüretilmelidir.

-veya-

tWindows Çalışma Zamanı bir türdür.

t parametresidirnull.

o tüm gerekli arabirimleri desteklemediğinden hedef türe dönüştürülemiyor.

Açıklamalar

CreateWrapperOfType genellikle temel __ComObject tür olan bir COM sınıf türünü başka bir COM sınıf türüne dönüştürür. parametresiyle otemsil edilen giriş COM nesnesi, Bir Çalışma Zamanı Çağrılabilen Sarmalayıcıdır (RCW).

t Hem hem de o parametreleri, imzaları ile System.Runtime.InteropServices.ComImportAttributeilişkilendirilen sınıflar olmalıdır. Tlbimp.exe (Tür Kitaplığı İçeri Aktarıcısı) aracı, bir tür kitaplığını içeri aktarırken bu özniteliği sizin için uygular. RCW'yi kaynak kodunda el ile oluşturursanız, bu özniteliği özgün coclass'ı temsil eden yönetilen imzaya uygulayarak COM çıkış noktalarını belirtmelisiniz.

Tlbimp.exe bir COM ortak sınıfını yönetilen sınıf ve arabirim olarak içeri aktarır. Ortak sınıf arabirimi, özgün ortak sınıfla aynı ada sahiptir ve yönetilen sınıfın "Sınıf" ile eklenmiş özgün ortak sınıf adı vardır. Örneğin, adlı bir coclass adlı MyCoclass bir ortak sınıf arabirimine ve adlı MyCoclass yönetilen bir sınıfa MyCoclassClassdönüşür. Arabirim t değil sınıf olması gerektiğinden, ortak sınıf arabirimini değil yönetilen sınıfı (MyCoclassClass) belirttiğinizden emin olun.

Not

Yeni bir RCW örneği özgün RCW tarafından kullanıma sunulan IUnknown işaretçisini sarmaladığı için giriş COM nesnesinin kimliğini kaybedersiniz.

Ayrıca bkz.

Şunlara uygulanır

CreateWrapperOfType<T,TWrapper>(T)

Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs

Belirtilen COM nesnesini belirtilen türdeki bir nesneye sarmalar.

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

Tür Parametreleri

T

Kaydıracak nesnenin türü.

TWrapper

Döndürülecek nesnenin türü.

Parametreler

o
T

Sarmalanacak nesne.

Döndürülenler

TWrapper

Yeni sarmalanan nesne.

Öznitelikler

Özel durumlar

T ' den __ComObjecttüretilmelidir.

-veya-

TWindows Çalışma Zamanı bir türdür.

o tüm gerekli arabirimleri desteklemediğinden öğesine dönüştürülemiyor TWrapper .

Açıklamalar

CreateWrapperOfType<T,TWrapper>(T) türünde T bir COM nesnesini COM sınıf türüne TWrapper dönüştürür. parametresiyle otemsil edilen giriş COM nesnesi, Bir Çalışma Zamanı Çağrılabilen Sarmalayıcıdır (RCW).

T Hem genel tür parametresi hem de o parametre, imzaları özniteliğiyle System.Runtime.InteropServices.ComImportAttribute ilişkilendirilen sınıflar olmalıdır. Tlbimp.exe (Tür Kitaplığı İçeri Aktarıcısı) aracı, bir tür kitaplığını içeri aktarırken bu özniteliği sizin için uygular. RCW'yi kaynak kodunda el ile oluşturursanız, bu özniteliği özgün coclass'ı temsil eden yönetilen imzaya uygulayarak COM çıkış noktalarını belirtmelisiniz.

Tlbimp.exe bir COM ortak sınıfını yönetilen sınıf ve arabirim olarak içeri aktarır. Ortak sınıf arabirimi, özgün ortak sınıfla aynı ada sahiptir ve yönetilen sınıfın "Sınıf" ile eklenmiş özgün ortak sınıf adı vardır. Örneğin, adlı bir coclass adlı MyCoclass bir ortak sınıf arabirimine ve adlı MyCoclass yönetilen bir sınıfa MyCoclassClassdönüşür. ArabirimT değil bir sınıf olması gerektiğinden, arabirimi değil yönetilen sınıfı (MyCoclassClass) belirttiğinizden coclass emin olun.

Not

Yeni bir RCW örneği özgün RCW tarafından kullanıma sunulan IUnknown işaretçisini sarmaladığı için, giriş COM nesnesinin kimliğini kaybedersiniz.

Şunlara uygulanır