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