我从.NET程序集中调用一个函数,它返回byte[]
。
如何捕获该函数的返回值?
我试过这个
byte[] byteData = (byte[])obj.GetType().GetMethod("methodname").Invoke(obj, new object[] { buffer });
但我在null
中得到byteData
值。
有人可以帮忙吗?
答案 0 :(得分:4)
如果它真的返回一个非空字节数组,那应该是绝对正常的。
你确定它没有填充你提供的缓冲区,而不是返回一个新的字节数组吗?
以下是它的工作演示:
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
}
}