Я ссылаюсь на файл COM DLL, используя CodeDom. Функция в файле dll имеет следующие параметры:
Public Function Foo(fooString As String, fooByte() As Byte)
End Function
Когда на этот файл DLL ссылается непосредственно Visual Studio (не использует CodeDom), я вызываю эту функцию следующим образом - и решение строится без проблем:
Byte[] b = File.ReadAllBytes("Test.exe");
DllName.DllClass dll_obj_reference = new DllName.DllClass();
dll_obj_reference.Foo("data", b);
Примечание:
Хотя я отправляю байтовый массив в функцию (по запросу VB6), Visual Studio фактически запрашивает тип System.Array
. По какой-то причине решение по-прежнему работает нормально, и я могу без проблем вызвать функцию Foo
.
Однако мне не так повезло, когда я делаю все это через CodeDom. Я добавляю interop.DllName в качестве ссылки на сгенерированный проект, и я вызываю точно так же. На этот раз, однако, CodeDom выдает ошибку, в которой говорится, что он не может преобразовать тип byte [] в тип ref System.Array.
Итак, мой вопрос - наконец:
Как я могу преобразовать байтовый массив, показанный выше, в тип System.Array? Я не могу найти никаких статей в Интернете.
Спасибо за любую помощь!