2009-08-09 4 views
0

Ich rufe eine Funktion von einer .NET-Assembly, die eine byte[] zurückgibt.Capture byte [] Rückgabewert von GetMethod (Methodenname). Invoke

Wie erfasse ich den Rückgabewert dieser Funktion?

ich versucht, dieses

byte[] byteData = (byte[])obj.GetType().GetMethod("methodname").Invoke(obj, new object[] { buffer }); 

aber ich bekomme einen null Wert zurück in byteData tun.

Kann jemand helfen?

+0

Sie diese auf Fehler und geprüft haben, dass Sie tatsächlich in die Zielverfahrensschritt? –

Antwort

4

Wenn es wirklich ein Nicht-Null-Byte-Array zurückgibt, sollte das absolut in Ordnung sein.

Sind Sie sicher, dass der von Ihnen bereitgestellte Puffer nicht gefüllt wird, anstatt ein neues Byte-Array zurückzugeben?

Hier ist eine Demo davon arbeiten:

using System; 

class Test 
{ 
    public byte[] GiveMeBytes() 
    { 
     return new byte[2]; 
    } 

    static void Main() 
    { 
     object obj = new Test(); 
     byte[] byteData = (byte[])obj.GetType().GetMethod("GiveMeBytes") 
            .Invoke(obj, new object[0]); 
     Console.WriteLine(byteData.Length); // Prints 2 
    } 
} 
+0

Danke Jon .. Ja, das ist, was ich dachte .. Ich könnte etwas anderes falsch machen .. Ich werde ein bisschen mehr graben –