Marshal.CreateWrapperOfType Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
CreateWrapperOfType(Object, Type) |
Geçersiz.
Belirtilen COM nesnesini belirtilen türde bir nesneye sarmalar. |
CreateWrapperOfType<T,TWrapper>(T) |
Belirtilen COM nesnesini belirtilen türde 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ürde 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
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 o
temsil 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 aktardığında 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 kaynaklarını belirtmelisiniz.
Tlbimp.exe bir COM ortak sınıfını yönetilen sınıf ve arabirim olarak içeri aktarır. Coclass arabirimi özgün coclass ile aynı ada sahiptir ve yönetilen sınıfın "Sınıf" ile eklenmiş özgün coclass adı vardır. Örneğin, adlı MyCoclass
bir coclass adlı bir coclass arabirimine ve adlı MyCoclass
MyCoclassClass
yönetilen bir sınıfa dö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ürde 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
Yeni sarmalanan nesne.
- Öznitelikler
Özel durumlar
o
tüm gerekli arabirimleri desteklemediğinden öğesine TWrapper
dönüştürülemiyor.
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 o
temsil edilen giriş COM nesnesi, Bir Çalışma Zamanı Çağrılabilen Sarmalayıcıdır (RCW).
T
Hem genel tür parametresi hem o
de 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 aktardığında 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 kaynaklarını belirtmelisiniz.
Tlbimp.exe bir COM ortak sınıfını yönetilen sınıf ve arabirim olarak içeri aktarır. Coclass arabirimi özgün coclass ile aynı ada sahiptir ve yönetilen sınıfın "Sınıf" ile eklenmiş özgün coclass adı vardır. Örneğin, adlı MyCoclass
bir coclass adlı bir coclass arabirimine ve adlı MyCoclass
MyCoclassClass
yönetilen bir sınıfa dö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.