ManagedToNativeComInteropStubAttribute Třída

Definice

Poskytuje podporu pro přizpůsobení uživatelských zástupných procedur ve scénářích spolupráce mezi spravovanými objekty 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 komunikace, kteří mají znalosti o zařazování a vnitřních pracovních činnostech volání vzájemné spolupráce, provádět následující akce:

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

  • Ladění přizpůsobených zástupných procedur vzájemné spolupráce

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

  • Poskytuje možnosti odesílání metod specifických pro uživatele.

Atribut použijete u metody v rozhraní k určení odpovídající metody zástupných procedur pro zprostředkovatele komunikace modelu COM spravovaného na nativní.

Pokud k tomuto atributu dojde během běhu, modul CLR (Common Language Runtime) dynamicky negeneruje zástupný kód vzájemné komunikace. Místo toho vyvolá vlastní zástupný proceduru, která byla vytvořena 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 jiné typy než rozhraní, modul runtime ho ignoruje.

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

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

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

Přetížené metody zástupných procedur jsou platné. Přestože zadáte pouze typ a název metody zástupných procedur, 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 procedur; při použití sdílených zástupných procedur byste ale měli být opatrní.

Note

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

Modul runtime můžete informovat, aby místo doby běhu používal přizpůsobenou zástupný proceduru zprostředkovatele komunikace v době sestavení s následujícím kódem jazyka C#:

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

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

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

Konstruktory

Name Description
ManagedToNativeComInteropStubAttribute(Type, String)

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

Vlastnosti

Name Description
ClassType

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

MethodName

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

TypeId

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

(Zděděno od Attribute)

Metody

Name Description
Equals(Object)

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

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

Vrátí kód hash pro tuto instanci.

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

Získá Type aktuální instance.

(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 pro odvozenou třídu.

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

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

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

Vytvoří mělkou kopii aktuálního 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í

Name Description
_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 pro 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