Freigeben über


ParameterModifier Struktur

Definition

Fügt einen Parametermodifizierer an, sodass die Bindung mit Parametersignaturen durchgeführt werden kann, in denen die Typen geändert wurden.

public value class ParameterModifier
public readonly struct ParameterModifier
public struct ParameterModifier
[System.Serializable]
public struct ParameterModifier
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct ParameterModifier
type ParameterModifier = struct
[<System.Serializable>]
type ParameterModifier = struct
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ParameterModifier = struct
Public Structure ParameterModifier
Vererbung
ParameterModifier
Attribute

Beispiele

Das folgende Codebeispiel zeigt dies für einen Member mit drei Zeichenfolgenargumenten, von denen das erste und das dritte als Verweis übergeben werden. Angenommen, eine Variable mit dem Namen obj enthält einen Verweis auf das COM-Objekt.

// Create an array containing the arguments.
array<Object^>^ args = {"Argument 1", "Argument 2", "Argument 3" };

// Initialize a ParameterModifier with the number of parameters.
ParameterModifier p = 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.

array<ParameterModifier>^ mods = { p };

// Invoke the method late bound.
obj->GetType()->InvokeMember("MethodName", BindingFlags::InvokeMethod,
     nullptr, obj, args, mods, nullptr, nullptr);
// 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);
' 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)

Hinweise

Die ParameterModifier -Struktur wird mit der Type.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) Methodenüberladung verwendet, wenn Parameter durch Verweis auf eine COM-Komponente übergeben werden, auf die spät gebunden zugegriffen wird. Die Parameter, die als Verweis übergeben werden sollen, werden von einer einzelnen ParameterModifier Struktur angegeben, die in einem Array übergeben werden muss, das ein einzelnes Element enthält. Die einzelne ParameterModifier Struktur in diesem Array muss mit der Anzahl von Parametern im member initialisiert werden, der aufgerufen werden soll. Um anzugeben, welche dieser Parameter als Verweis übergeben werden, legen Sie den Wert der Item[] Eigenschaft (der Indexer in C#) true für die Indexnummer fest, die der nullbasierten Position des Parameters entspricht.

Konstruktoren

ParameterModifier(Int32)

Initialisiert eine neue Instanz der ParameterModifier-Struktur, die die angegebene Anzahl von Parametern darstellt.

Eigenschaften

Item[Int32]

Ruft einen Wert ab, der angibt, ob der Parameter an der angegebenen Indexposition durch den aktuellen ParameterModifier geändert werden soll, oder legt diesen Wert fest.

Gilt für: