Поделиться через


Marshal.CreateWrapperOfType Метод

Определение

Перегрузки

CreateWrapperOfType(Object, Type)
Устаревшие..

Инкапсулирует указанный COM-объект в объекте заданного типа.

CreateWrapperOfType<T,TWrapper>(T)

Инкапсулирует указанный COM-объект в объекте заданного типа.

CreateWrapperOfType(Object, Type)

Исходный код:
Marshal.NoCom.cs
Исходный код:
Marshal.NoCom.cs
Исходный код:
Marshal.NoCom.cs

Внимание!

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

Инкапсулирует указанный COM-объект в объекте заданного типа.

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

Параметры

o
Object

Объект, который следует упаковать.

t
Type

Тип создаваемой оболочки.

Возвращаемое значение

Новый инкапсулированный объект, являющийся экземпляром нужного типа.

Атрибуты

Исключения

Параметр t должен быть производным от __ComObject.

-или-

t — это тип среды выполнения Windows.

Параметр t имеет значение null.

Параметр o нельзя преобразовать в результирующий тип, так как он не поддерживает все требуемые интерфейсы.

Комментарии

CreateWrapperOfType преобразует один тип класса COM, обычно базовый __ComObject , в другой тип com-класса. Входной COM-объект, представленный параметром o, является вызываемой оболочкой времени выполнения (RCW).

t Параметры и o должны быть классами, сигнатуры которых атрибутируются с помощью System.Runtime.InteropServices.ComImportAttribute. Средство Tlbimp.exe (средство импорта библиотек типов) применяет этот атрибут при импорте библиотеки типов. При создании RCW вручную в исходном коде этот атрибут следует применить к управляемой сигнатуре, представляющей исходный класс для обозначения его com-источников.

Tlbimp.exe импортирует com-класс в виде управляемого класса и интерфейса. Интерфейс coclass имеет то же имя, что и исходный класс, а управляемый класс имеет исходное имя сокласса с добавлением "Класс". Например, coclass с именем MyCoclass становится интерфейсом coclass с именем MyCoclass и управляемым классом с именем MyCoclassClass. Так как t должен быть классом, а не интерфейсом, обязательно укажите управляемый класс (MyCoclassClass), а не интерфейс совместного класса.

Примечание

Удостоверение входного COM-объекта теряется, так как новый экземпляр RCW заключает в оболочку указатель IUnknown , предоставляемый исходным RCW.

См. также раздел

Применяется к

CreateWrapperOfType<T,TWrapper>(T)

Исходный код:
Marshal.NoCom.cs
Исходный код:
Marshal.NoCom.cs
Исходный код:
Marshal.NoCom.cs

Инкапсулирует указанный COM-объект в объекте заданного типа.

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

Тип пакуемого объекта.

TWrapper

Тип возвращаемого объекта.

Параметры

o
T

Объект, который следует упаковать.

Возвращаемое значение

TWrapper

Только что Инкапсулированный объект.

Атрибуты

Исключения

Параметр T должен быть производным от __ComObject.

-или-

T — это тип среды выполнения Windows.

Параметр o не может быть преобразован в TWrapper, так как он не поддерживает все необходимые интерфейсы.

Комментарии

CreateWrapperOfType<T,TWrapper>(T) преобразует COM-объект типа T в TWrapper тип COM-класса. Входной COM-объект, представленный параметром o, является вызываемой оболочкой времени выполнения (RCW).

И параметр универсального T типа, и o параметр должны быть классами, сигнатуры которых приписываются атрибутом System.Runtime.InteropServices.ComImportAttribute . Средство Tlbimp.exe (средство импорта библиотек типов) применяет этот атрибут при импорте библиотеки типов. При создании RCW вручную в исходном коде этот атрибут следует применить к управляемой сигнатуре, представляющей исходный класс для обозначения его com-источников.

Tlbimp.exe импортирует com-класс в виде управляемого класса и интерфейса. Интерфейс coclass имеет то же имя, что и исходный класс, а управляемый класс имеет исходное имя сокласса с добавлением "Класс". Например, coclass с именем MyCoclass становится интерфейсом coclass с именем MyCoclass и управляемым классом с именем MyCoclassClass. Так какT должен быть классом, а не интерфейсом, обязательно укажите управляемый класс (MyCoclassClass), а не coclass интерфейс .

Примечание

Удостоверение входного COM-объекта теряется, так как новый экземпляр RCW заключает в оболочку указатель IUnknown , предоставляемый исходным RCW.

Применяется к