ManagedToNativeComInteropStubAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет поддержку настройки заглушки взаимодействия пользователей в сценариях взаимодействия с управляемыми к COM.
public ref class ManagedToNativeComInteropStubAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
Public NotInheritable Class ManagedToNativeComInteropStubAttribute
Inherits Attribute
- Наследование
- Атрибуты
Комментарии
Этот атрибут позволяет разработчикам взаимодействия, имеющим знания о маршалинге и внутренних действиях вызовов взаимодействия, выполнять следующие действия:
Воспользуйтесь настраиваемыми заглушками взаимодействия во время сборки вместо времени выполнения.
Отладка настраиваемых заглушки взаимодействия.
Предоставьте возможности маршалинга в заглушку, которую среда выполнения не предоставляет.
Предоставьте возможности отправки определенных пользователем методов.
Атрибут применяется к методу в интерфейсе, чтобы указать соответствующий метод заглушки для управляемого взаимодействия COM.
Если этот атрибут обнаружен во время выполнения, среда CLR не создает заглушку взаимодействия. Вместо этого он вызывает настраиваемую заглушку, созданную во время сборки.
Атрибут ManagedToNativeComInteropStubAttribute имеет следующие характеристики:
Атрибут можно использовать только для методов из интерфейсов, помеченных
[ComImport]. Если атрибут применяется к типам, отличным от интерфейса, он игнорируется средой выполнения.Атрибут можно использовать только один раз в одном методе в интерфейсе. Если он используется несколько раз, компилятор создает ошибку повторяющегося атрибута.
Атрибут не наследуется от базового интерфейса. Производные интерфейсы должны явно назначать атрибут.
Сборка, содержащая метод атрибута, также должна содержать настраиваемую заглушку.
Перегруженные методы заглушки допустимы. Хотя вы указываете только тип и имя метода заглушки, среда выполнения обнаружит соответствующую заглушку. Это делается путем изучения всех аргументов в методе интерфейса, а затем выполнения полного сопоставления сигнатуры с помощью явного this указателя.
Также можно использовать несколько методов в интерфейсе для совместного использования одного и того же метода заглушки; Однако при использовании общих заглушок следует быть осторожным.
Note
Методы заглушки должны быть статическими.
Вы можете сообщить среде выполнения, чтобы использовать настраиваемую заглушку взаимодействия во время сборки вместо времени выполнения с помощью следующего кода C#:
[ComImport]
interface IMyInterface
{
[ManagedToNativeComInteropStubAttribute(typeof(TestStubClass),
"ForwardTestStub")]
void GetString (string arg);
}
Затем можно использовать следующий код для объявления соответствующего метода заглушки:
class TestStubClass
{
internal static void ForwardTestStub(IMyInterface thisObject,
string arg) {…}
}
Конструкторы
| Имя | Описание |
|---|---|
| ManagedToNativeComInteropStubAttribute(Type, String) |
Инициализирует новый экземпляр ManagedToNativeComInteropStubAttribute класса с указанным типом класса и именем метода. |
Свойства
| Имя | Описание |
|---|---|
| ClassType |
Возвращает класс, содержащий обязательный метод заглушки. |
| MethodName |
Возвращает имя метода заглушки. |
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра. (Унаследовано от Attribute) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
| Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. (Унаследовано от Attribute) |