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
Наследование
ManagedToNativeComInteropStubAttribute
Атрибуты

Комментарии

Этот атрибут позволяет разработчикам взаимодействия, которые обладают знаниями о маршале и внутренней работе вызовов взаимодействия, выполнять следующие действия:

  • Используйте настраиваемые заглушки взаимодействия во время сборки вместо времени выполнения.

  • Отладка настраиваемых заглушки взаимодействия.

  • Предоставьте возможности маршалинга в заглушку, которую среда выполнения не предоставляет.

  • Предоставьте возможности диспетчеризации определенных пользователем методов.

Атрибут применяется к методу в интерфейсе, чтобы указать соответствующий метод заглушки для управляемого com-взаимодействия.

Если этот атрибут встречается во время выполнения, среда CLR не создает заглушку взаимодействия динамически. Вместо этого он вызывает пользовательскую заглушку, созданную во время сборки.

Атрибут ManagedToNativeComInteropStubAttribute имеет следующие характеристики:

  • Атрибут можно использовать только для методов из интерфейсов, помеченных [ComImport]. Если атрибут применяется к типам, не являющихся интерфейсами, он игнорируется средой выполнения.

  • Атрибут можно использовать только один раз в одном методе в интерфейсе. Если он используется несколько раз, компилятор создает ошибку повторяющегося атрибута.

  • Атрибут не наследуется от базового интерфейса. Производные интерфейсы должны явно назначать атрибут.

  • Сборка, содержащая метод с атрибутами, также должна содержать настраиваемую заглушку.

Перегруженные методы заглушки являются допустимыми. Хотя вы указываете только тип и имя метода заглушки, среда выполнения обнаружит соответствующую заглушку. Для этого необходимо проанализировать все аргументы метода интерфейса, а затем выполнить полное сопоставление сигнатуры с помощью явного this указателя.

Кроме того, несколько методов в интерфейсе могут совместно использовать один и тот же метод заглушки; однако при использовании общих заглушек следует соблюдать осторожность.

Примечание

Методы заглушки должны быть статическими.

Вы можете сообщить среде выполнения, чтобы использовать настраиваемую заглушку взаимодействия во время сборки вместо времени выполнения с помощью следующего кода 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)

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