Sdílet prostřednictvím


ManagedToNativeComInteropStubAttribute Třída

Definice

Poskytuje podporu pro uživatelské přizpůsobení ztužování zprostředkovatele komunikace ve scénářích zprostředkovatele spravovaných na 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ím fungování volání zprostředkovatele, provádět následující akce:

  • Místo doby běhu využijte přizpůsobené funkce zadržování komunikace v době sestavení.

  • Ladění přizpůsobených záseků zprostředkovatele.

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

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

Atribut použijete na metodu v rozhraní k určení odpovídající metody se zástupným kódem pro spravovanou nativní interop modelu COM.

Pokud se tento atribut zjistí během běhu, modul CLR (Common Language Runtime) dynamicky nevygeneruje zástupný kód pro zprostředkovatele komunikace. Místo toho vyvolá vlastní inzerci, která byla vytvořena v době sestavení.

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

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

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

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

  • Sestavení, které obsahuje metodu atributu, musí také obsahovat 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 stub, 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 párování podpisů pomocí explicitního this ukazatele.

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

Poznámka

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

Modul runtime můžete informovat, že má v době sestavení místo doby běhu použít vlastní inzerci zprostředkovatele interop, a to pomocí následujícího kódu jazyka C#:

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

Pak můžete použít následující kód k deklaraci odpovídající metody stub:

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 se zástupným kódem.

TypeId

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

(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()

Získá aktuální Type instanci.

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

Při přepsání v odvozené třídě označuje, zda je hodnota této instance 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á označuje, zda se tato instance rovná zadanému objektu.

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

Vytvoří mělkou kopii aktuálního Objectsouboru .

(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 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