Невозможно использовать методы.NET в развернутой DLL-библиотеке Matlab.
Используя Matlab Compiler SDK, я могу развернуть свой код Matlab в dll, которую можно загрузить в приложение C#. Теперь я также добавил бы ссылку.NET в мой код Matlab с помощью команды matlab NET.addAssembly. Если я запускаю свой код в Matlab, я могу получить доступ к методу класса, который я импортировал. К сожалению, если я скомпилирую свой код Matlab (с добавленной ссылкой.net), чтобы получить мою обычную dll, то кажется, что методы класса.net, который я импортировал в свой код matlab, больше не видны (matlab выдает ошибку "Нет подходящий метод, свойство или поле "MyMethodName" для класса "MyNameSpace.MyClass". Кто-нибудь может мне помочь? Заранее большое спасибо.
PS: Может показаться странным иметь проект.NET, который ссылается на скомпилированную dll-библиотеку Matlab, которая ссылается на другую C# dll. Причина в том, что мне нужно конвертировать весь мой (большой) проект Matlab в aC#, и я хотел бы сделать это шаг за шагом, но без влияния на основное (C#) приложение.
1 ответ
Ошибка вызвана тем, что в главном приложении есть класс с тем же именем и тем же пространством имен (т.е. MyNameSpace.MyClass). Кажется, это скрывает класс, определенный в сборке, которую я загружаю из Matlab.
Я изменил имя пространства имен класса, который загружаю в Matlab, и теперь оно работает.