Существует два API преобразования данных, которые доступны для маршала и форматирования данных через управляемые (.NET) и неуправляемые (MATLAB)®) контур кода. В дополнение к ранее доступным MWArray
API, Native API доступен. Каждый API имеет преимущества и ограничения, и каждый имеет определенные приложения, для которых он лучше всего подходит.
The MWArray
API, который состоит из MWArray
класс и несколько производных типов, которые сопоставляются с типами данных MATLAB, является стандартным API, который используется с момента введения MATLAB Compiler SDK™. Он обеспечивает полный набор услуг и форматирование для всех основных типов данных MATLAB, включая разреженные массивы, структуры и массивы ячеек. Этот API требует установки MATLAB Runtime на целевой машине, поскольку он использует несколько примитивных функций MATLAB. Дополнительные сведения об использовании этого API см. в разделе Доступ к удаляемой сборке .NET с использованием MWArray.
Native API был разработан специально, хотя и не исключительно, для поддержки .NET удаленного взаимодействия. Он позволяет передавать аргументы и возвращаемые значения с помощью стандартных типов .NET при вызове развернутой функции MATLAB. Здесь по-прежнему используется маршалинг данных, но он не явен в коде клиента. Эта функция особенно полезна для клиентов, которые получают доступ к удаляемому компоненту с помощью собственного интерфейса API, так как она не требует установки MATLAB Runtime на клиентской машине. В сложение, поскольку в этом API используются только нативные типы .NET, нет необходимости изучать семантику нового набора классов преобразования данных. Этот API не поддерживает непосредственно аналоги .NET для структуры MATLAB и типов массивов ячеек. Дополнительные сведения об использовании этого API см. в разделе Доступ к удаляемой .NET-сборке с использованием Native .NET API: Магический квадрат.
Функции MWArray API по сравнению с Native .NET API
MWArray API | Собственный .NET API | |
---|---|---|
Маршалинг/форматирование для всех основных типов MATLAB | X | |
Передайте аргументы и возвращаемые значения с помощью стандартных типов .NET | X | |
Доступ к удаляемому компоненту от клиента без установленного MATLAB | X | |
Доступ к удаляемому компоненту от клиента без установленного MATLAB Runtime (см. Доступ к удаляемой сборке .NET с использованием Native .NET API: Камера и Struct). | X |
MATLAB Compiler SDK native .NET API принимает стандартные типы данных .NET для входов и выходов к вызовам функций MATLAB.
Эти стандартные типы данных .NET упаковываются в Object
class - базовый класс для всех типов данных .NET. Этого представления объекта достаточно, пока функции MATLAB имеют числовые, логические или строковые входы или выходы. Это плохо работает для типов данных MATLAB, таких как структура (struct) и массивы ячеек, поскольку собственное представление этих типов массивов приводит к многомерному Object
массив, который трудно понять или обработать. Вместо этого MATLAB Compiler SDK предоставляет специальную иерархию классов для представления struct и массива ячеек, предназначенную для простого взаимодействия с собственным .NET API. Для получения дополнительной информации смотрите Доступ удаляемой сборки .NET с использованием Native .NET API: Камера и Struct.