ManagedToNativeComInteropStubAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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) |