ManagedToNativeComInteropStubAttribute Třída

Definice

Poskytuje podporu pro přizpůsobení uživatelů interop stubs ve scénářích spolupráce spravovaných do modelu 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
Dědičnost
ManagedToNativeComInteropStubAttribute
Atributy

Poznámky

Tento atribut umožňuje vývojářům zprostředkovatele, kteří mají znalosti o zařazování a vnitřních pracovních voláních interopu, provádět následující akce:

  • Využijte přizpůsobené zástupné procedury v době sestavení místo doby běhu.

  • Ladění přizpůsobených zákroků interopu

  • Poskytněte možnosti zařazování v rámci zástupných procedur, které modul runtime neposkytuje.

  • Zadejte možnosti odeslání metody specifické pro uživatele.

Atribut použijete u metody v rozhraní a určíte odpovídající metodu zástupných znaků pro interop modelu COM spravovaného to-nativního.

Pokud se tento atribut vyskytuje během běhu, modul clr clr (Common Language Runtime) negeneruje zástupný kód interopu. Místo toho vyvolá vlastní zástupný soubor vytvořený v době sestavení.

Atribut ManagedToNativeComInteropStubAttribute má následující charakteristiky:

  • Atribut lze použít pouze u metod z rozhraní, která jsou označena [ComImport]. Pokud se atribut použije na typy bez rozhraní, modul runtime ho ignoruje.

  • Atribut lze použít pouze jednou ve stejné metodě v rozhraní. Pokud se používá vícekrát, kompilátor vygeneruje duplicitní chybu atributu.

  • Atribut není zděděný ze základního rozhraní. Odvozená rozhraní musí atribut explicitně přiřadit.

  • Sestavení, které obsahuje atributovanou metodu, musí obsahovat také přizpůsobený zástupný kód.

Přetížené metody zástupných znaků jsou platné. I když zadáte pouze typ a název metody zástupných znaků, modul runtime zjistí odpovídající zástupný kód. Provede to prozkoumáním všech argumentů v metodě rozhraní a následným provedením úplného porovnávání podpisů pomocí explicitního this ukazatele.

Je také možné, aby více metod v rozhraní sdílelo stejnou metodu zástupných znaků; Při používání sdílených stubů byste ale měli být opatrní.

Poznámka

Metody zástupných procedur musí být statické.

Modul runtime můžete informovat, že místo běhu použijete přizpůsobený zástupný kód interopu v době sestavení.

[ComImport]  
interface IMyInterface  
{  
    [ManagedToNativeComInteropStubAttribute(typeof(TestStubClass),  
              "ForwardTestStub")]  
    void GetString (string arg);  
}  

Potom můžete pomocí následujícího kódu deklarovat odpovídající metodu zástupných znaků:

class TestStubClass  
{  
    internal static void ForwardTestStub(IMyInterface thisObject,  
             string arg) {…}  
}  

Konstruktory

ManagedToNativeComInteropStubAttribute(Type, String)

Inicializuje novou instanci ManagedToNativeComInteropStubAttribute třídy se zadaným typem třídy a názvem metody.

Vlastnosti

ClassType

Získá třídu, která obsahuje požadovanou metodu zástupných znaků.

MethodName

Získá název metody zástupných znaků.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou odvozené třídy.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro