ManagedToNativeComInteropStubAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt ondersteuning voor het aanpassen van gebruikers van interop-stubs in scenario's voor beheerde naar-COM-interoperabiliteit.
public ref class ManagedToNativeComInteropStubAttribute sealed : 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, Inherited=false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
Public NotInheritable Class ManagedToNativeComInteropStubAttribute
Inherits Attribute
- Overname
- Kenmerken
Opmerkingen
Met dit kenmerk kunnen ontwikkelaars die kennis hebben over marshaling en de interne werking van interop-aanroepen het volgende doen:
Profiteer van aangepaste interop-stubs tijdens de build in plaats van runtime.
Fouten opsporen in aangepaste interop-stubs.
Bieden marshaling-mogelijkheden binnen een stub die de runtime niet biedt.
Bied gebruikersspecifieke verzendmogelijkheden voor methoden.
U past het kenmerk toe op een methode in een interface om een bijbehorende stub-methode op te geven voor com-interoperabiliteit van beheerde naar systeemeigen COM.
Als dit kenmerk tijdens de runtime wordt aangetroffen, genereert de algemene taalruntime geen stub voor interop. In plaats daarvan wordt de aangepaste stub aangeroepen die tijdens de build is gemaakt.
Het ManagedToNativeComInteropStubAttribute kenmerk heeft de volgende kenmerken:
Het kenmerk kan alleen worden gebruikt voor methoden van interfaces die zijn gemarkeerd
[ComImport]. Als het kenmerk wordt toegepast op niet-interfacetypen, wordt het genegeerd door de runtime.Het kenmerk kan slechts eenmaal op dezelfde methode in een interface worden gebruikt. Als deze meer dan één keer wordt gebruikt, genereert de compiler een dubbele kenmerkfout.
Het kenmerk kan niet worden overgenomen van een basisinterface. Afgeleide interfaces moeten het kenmerk expliciet toewijzen.
De assembly die de toegewezen methode bevat, moet ook de aangepaste stub bevatten.
Overbelaste stubmethoden zijn geldig. Hoewel u alleen het type en de naam van de stub-methode opgeeft, detecteert de runtime de bijbehorende stub. Dit doet u door alle argumenten op de interfacemethode te onderzoeken en vervolgens volledige handtekeningkoppeling uit te voeren met behulp van een expliciete this aanwijzer.
Het is ook mogelijk dat meerdere methoden in een interface dezelfde stubmethode delen; U moet echter voorzichtig zijn wanneer u gedeelde stubs gebruikt.
Note
Stub-methoden moeten statisch zijn.
U kunt de runtime informeren over het gebruik van een aangepaste interop-stub tijdens de build in plaats van runtime met de volgende C#-code:
[ComImport]
interface IMyInterface
{
[ManagedToNativeComInteropStubAttribute(typeof(TestStubClass),
"ForwardTestStub")]
void GetString (string arg);
}
Vervolgens kunt u de volgende code gebruiken om de bijbehorende stub-methode te declareren:
class TestStubClass
{
internal static void ForwardTestStub(IMyInterface thisObject,
string arg) {…}
}
Constructors
| Name | Description |
|---|---|
| ManagedToNativeComInteropStubAttribute(Type, String) |
Initialiseert een nieuw exemplaar van de ManagedToNativeComInteropStubAttribute klasse met het opgegeven klassetype en de naam van de methode. |
Eigenschappen
| Name | Description |
|---|---|
| ClassType |
Haalt de klasse op die de vereiste stub-methode bevat. |
| MethodName |
Hiermee haalt u de naam van de stub-methode op. |
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| GetHashCode() |
Retourneert de hash-code voor dit exemplaar. (Overgenomen van Attribute) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsDefaultAttribute() |
Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse. (Overgenomen van Attribute) |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). (Overgenomen van Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. (Overgenomen van Attribute) |