Nyelv

ManagedToNativeComInteropStubAttribute Osztály

Definíció

Támogatja az interop-stubok felhasználói testreszabását a felügyelt-com közötti interop forgatókönyvekben.

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
Öröklődés
ManagedToNativeComInteropStubAttribute
Attribútumok

Megjegyzések

Ez az attribútum lehetővé teszi, hogy azok az interop fejlesztők, akik ismerik a marsallálást és az interop hívások belső működését, tegye a következőket:

  • Használja ki a testreszabott interop-stubs előnyeit a buildeléskor a futási idő helyett.

  • Testreszabott interop-csonkok hibakeresése.

  • Biztosítson olyan felügyeleti képességeket egy csonkon belül, amelyet a futtatókörnyezet nem biztosít.

  • Biztosítson felhasználóspecifikus metódus-küldési képességeket.

Az attribútumot egy felületen egy metódusra alkalmazza a felügyelt és natív COM-interophoz tartozó csonkmetódus megadásához.

Ha ez az attribútum futásidőben jelentkezik, a közös nyelvi futtatókörnyezet nem hoz létre dinamikusan egymással összefüggő csonkot. Ehelyett meghívja a buildeléskor létrehozott egyéni csonkot.

Az ManagedToNativeComInteropStubAttribute attribútum a következő jellemzőkkel rendelkezik:

  • Az attribútum csak a megjelölt [ComImport]felületek metódusaihoz használható. Ha az attribútum nem felületi típusokra van alkalmazva, a futtatókörnyezet figyelmen kívül hagyja.

  • Az attribútum csak egyszer használható ugyanazon a felületen. Ha többször használják, a fordító ismétlődő attribútumhibát okoz.

  • Az attribútum nem örökölhető egy alapfelületről. A származtatott felületeknek explicit módon kell hozzárendelniük az attribútumot.

  • Az attribútumozott metódust tartalmazó szerelvénynek tartalmaznia kell a testreszabott csonkot is.

A túlterhelt csonk metódusok érvényesek. Bár csak a csonk metódus típusát és nevét adja meg, a futtatókörnyezet felderíti a megfelelő csonkot. Ezt úgy hajtja végre, hogy megvizsgálja a felületi metódus összes argumentumát, majd egy explicit this mutatóval teljes aláírás-egyeztetést hajt végre.

Az is lehetséges, hogy egy felületen több metódus is ugyanazt a csonkmetódust használja; azonban óvatosnak kell lennie, ha megosztott csonkokat használ.

Note

A csonk metódusának statikusnak kell lennie.

A futtatókörnyezetet a következő C#-kóddal értesítheti, hogy a buildeléskor a futási idő helyett egy testreszabott interop-csonkot használjon:

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

Ezután a következő kóddal deklarálhatja a megfelelő csonk metódust:

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

Konstruktorok

Name Description
ManagedToNativeComInteropStubAttribute(Type, String)

Inicializálja az osztály új példányát a ManagedToNativeComInteropStubAttribute megadott osztálytípussal és metódusnévvel.

Tulajdonságok

Name Description
ClassType

Lekéri a szükséges csonkmetódus-metódust tartalmazó osztályt.

MethodName

Lekéri a csonk metódus nevét.

TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Name Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

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

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes: