Получение возвращаемого значения byte [] из GetMethod (имя метода). Invoke - PullRequest
0 голосов
/ 09 августа 2009

Я вызываю функцию из сборки .NET, которая возвращает byte[].

Как мне получить возвращаемое значение этой функции?

Я пытался сделать это

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

но я получаю null значение обратно в byteData.

Кто-нибудь может помочь?

1 Ответ

4 голосов
/ 09 августа 2009

Если он действительно возвращает ненулевой байтовый массив, это должно быть абсолютно нормально.

Вы уверены, что он не заполняет предоставленный вами буфер, а не возвращает новый байтовый массив?

Вот демонстрация того, как это работает:

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...