2009-08-09 13 views
0

byte[]を返す.NETアセンブリから関数を呼び出しています。GetMethod(メソッド名)からのバイト[]戻り値の取り込み.Invoke

この関数の戻り値を取得するにはどうすればよいですか?

私はこの

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

をやってみましたが、私は戻ってbyteDatanull値を取得します。

誰でも手伝いできますか?

+0

は、あなたがこれをデバッグし、あなたが実際にターゲット・メソッドにステップすることを確認しましたか? –

答えて

4

本当にnull以外のバイト配列が返されている場合は、それが問題ありません。

新しいバイト配列を返すのではなく、指定したバッファがいっぱいになっていませんか?ここで

は作業それのデモです:

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

ありがとうジョン...はい、私が思ったものです。私は別の何かを間違っているかもしれない..私はもう少し掘削を行うでしょう –

関連する問題