Выбор способа доступа к сборке

Существует два 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
Маршалинг/форматирование для всех основных типов MATLABX 
Передайте аргументы и возвращаемые значения с помощью стандартных типов .NET X
Доступ к удаляемому компоненту от клиента без установленного MATLAB X
Доступ к удаляемому компоненту от клиента без установленного MATLAB Runtime (см. Доступ к удаляемой сборке .NET с использованием Native .NET API: Камера и Struct). X

Использование собственной структуры .NET и массивов ячеек

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.