2009-05-07 13 views
2

Ich habe einen Gegenstand mit einer Funktion, die ein out-Argument nimmt. Ich möchte diese Funktion mit Reflection's Invoke aufrufen. Ich kann jedoch keine Möglichkeit finden, anzugeben, dass es ein out-Argument ist, da es null zurückgibt.Aufruf einer Funktion mit einem out-Argument mit Invoke

Der obige Aufruf der Assertion schlägt fehl, da param leer ist. Wie kann ich angeben, dass das Argumetn, das übergeben wird, "out" ist?

Danke!

Antwort

7

Reflection aktualisiert den Wert im Array, nicht den Wert, der an das Array übergeben wird. Halten Sie den Array-Verweis und der Wert wird inline aktualisiert.

string param = string.Empty; 
object[] args = new object[] {param}; 
f.GetType().GetMethod("Do").Invoke(f, args); 
param = (string)args[0]; 
Verwandte Themen