C# 从GetMethod(methodname)捕获字节[]返回值。调用
我正在从.NET程序集调用一个函数,该程序集返回一个C# 从GetMethod(methodname)捕获字节[]返回值。调用,c#,reflection,C#,Reflection,我正在从.NET程序集调用一个函数,该程序集返回一个字节[] 如何捕获该函数的返回值 我试过这么做 byte[] byteData = (byte[])obj.GetType().GetMethod("methodname").Invoke(obj, new object[] { buffer }); 但是我在byteData中得到了一个null值 有人能帮忙吗?如果它真的返回一个非空字节数组,那应该是绝对好的 您确定它没有填充您提供的缓冲区,而是返回一个新的字节数组吗 下面是它工作的演示:
字节[]
如何捕获该函数的返回值
我试过这么做
byte[] byteData = (byte[])obj.GetType().GetMethod("methodname").Invoke(obj, new object[] { buffer });
但是我在byteData
中得到了一个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
}
}
如果它真的返回一个非空字节数组,那应该是绝对正确的 您确定它没有填充您提供的缓冲区,而是返回一个新的字节数组吗 下面是它工作的演示:
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
}
}
你是否调试过并检查过你是否真的进入了目标方法?你是否调试过并检查过你是否真的进入了目标方法?谢谢Jon。。是的,我就是这么想的。。我可能做错了别的事。。我会再挖一点谢谢Jon。。是的,我就是这么想的。。我可能做错了别的事。。我会再挖一点