Freigeben über


ParameterModifier-Struktur

Fügt Parametern einen Modifizierer hinzu. Dies ermöglicht die Bindung mit Parametersignaturen, in denen die Typen geändert wurden.

Namespace: System.Reflection
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure ParameterModifier
'Usage
Dim instance As ParameterModifier
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public struct ParameterModifier
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public value class ParameterModifier
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class ParameterModifier extends ValueType
JScript unterstützt die Verwendung von Strukturen, aber nicht die Deklaration von neuen Strukturen.

Hinweise

Die ParameterModifier-Struktur wird mit der Type.InvokeMember-Methodenüberladung beim Übergeben von Parametern als Verweis an eine COM-Komponente mit spät gebundenem Zugriff verwendet. Die als Verweis übergebenen Parameter werden über eine einzelne ParameterModifier-Struktur angegeben, die in einem Array mit einem einzelnen Element übergeben werden muss. Die einzelne ParameterModifier-Struktur in diesem Array muss mit der Anzahl von Parametern in dem aufzurufenden Member initialisiert sein. Um anzugeben, welcher dieser Parameter als Verweis übergeben wird, legen Sie den Wert der Item-Eigenschaft (Indexer in C#) auf true für die Indexnummer fest, die der nullbasierten Position des Parameters entspricht.

Im folgenden Visual Basic- und C#-Code wird dies für einen Member mit drei Zeichenfolgenargumenten gezeigt, bei dem das erste und dritte Argument als Verweis übergeben werden. Für dieses Beispiel wird davon ausgegangen, dass eine Variable mit dem Namen obj einen Verweis auf das COM-Objekt enthält.

    ' Create an array containing the arguments.
    Dim args() As Object = {"Argument 1", "Argument 2", "Argument 3" }

    ' Initialize a ParameterModifier with the number of parameters.
    Dim p As New ParameterModifier(3)

    ' Pass the first and third parameters by reference.
    p(0) = True
    p(2) = True

    ' The ParameterModifier must be passed as the single element
    ' of an array.
    Dim mods() As ParameterModifier = { p }

    ' Invoke the method late bound.
    obj.GetType().InvokeMember("MethodName", BindingFlags.InvokeMethod,
         Nothing, obj, args, mods, Nothing, Nothing)
    // Create an array containing the arguments.
    object[] args = {"Argument 1", "Argument 2", "Argument 3" };

    // Initialize a ParameterModifier with the number of parameters.
    ParameterModifier p = new ParameterModifier(3);

    // Pass the first and third parameters by reference.
    p[0] = true;
    p[2] = true;

    // The ParameterModifier must be passed as the single element
    // of an array.
    ParameterModifier[] mods = { p };

    // Invoke the method late bound.
    obj.GetType().InvokeMember("MethodName", BindingFlags.InvokeMethod,
         null, obj, args, mods, null, null);

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

ParameterModifier-Member
System.Reflection-Namespace