MATLAB® типы данных несовместимы с нативными типами.NET. Чтобы отправить данные между вашим приложением и.NET, вы выполняете эти задачи:
Упорядочьте данные от входных данных.NET до развернутой функции путем создания MWArray
объект из нативных данных о.NET. public
функции в развернутом возврате компонента MWArray
объекты.
Упорядочьте данные выхода MATLAB в MWArray
в нативные данные о.NET путем вызова одного из MWArray
маршалинг методов (ToArray()
, например).
Вручную маршалинг данных добавляет сложность и потенциальные места ошибки к задаче интеграции развернутых компонентов в приложение.NET. Это особенно верно по этим причинам:
Ваше приложение не может обнаружить ошибки несоответствия типов до времени выполнения. Например, вы можете случайно создать MWArray
от строки и передачи массив к развернутой функции, которая ожидает номер. Поскольку код обертки, сгенерированный MATLAB Compiler SDK™, ожидает MWArray
, компилятор.NET не может обнаружить эту ошибку и развернутую функцию или выдает исключение или дает неправильный ответ.
Ваши конечные пользователи должны изучить, как использовать MWArray
тип данных или альтернативно маскирует MWArray
тип данных позади вручную записанного (и вручную обеспеченный) API. Это вводит нежелательное учебное время и помещает требования к ресурсам в потенциально превышенный возможности штат.
Маршалинг данных без безопасного с точки зрения типов интерфейса
Можно найти MWArray
методы, более эффективные при передаче больших значений данных в циклах к одной или нескольким развернутым функциям. В таких случаях, создавая MWArray
объект позволяет вам упорядочивать данные только однажды, тогда как безопасные с точки зрения типов интерфейсы упорядочивают входные параметры на каждом вызове.
Можно постараться не выполнять MWArray
маршалинг данных при помощи type-safe interfaces. Такие интерфейсы минимизируют явные преобразования типов путем сокрытия MWArray
введите из вызывающего приложения. Используя безопасные с точки зрения типов интерфейсы позволяет разработчикам.NET работать непосредственно со знакомыми собственными типами данных.
Маршалинг данных с безопасным с точки зрения типов интерфейсом
Некоторые причины реализовать безопасные с точки зрения типов интерфейсы включают:
Вы избегаете обучения и кодирующих затрат, сопоставленных с тем, чтобы учить конечных пользователей работать с MWArray
API.
Вы минимизируете стоимость данных, необходимо упорядочить по любому размещению MWArray
объекты в безопасных с точки зрения типов интерфейсах или путем вызова MWArray
функции в развернутом коде MATLAB.
Гибкость — вы смешиваете безопасные с точки зрения типов интерфейсы с ручным маршалингом данных, чтобы хранить данные различных размеров и схем доступа. Например, у вас может быть несколько больших объектов данных (изображения, например), который понес бы чрезмерные расходы к вашей организации, если управляемый с безопасным с точки зрения типов интерфейсом. Путем смешивания безопасных с точки зрения типов интерфейсов и маршалинга руководства, меньшие типы данных могут быть управляемыми автоматически с безопасным с точки зрения типов интерфейсом, и большие данные могут быть управляемыми по мере необходимости.
Для получения дополнительной информации при реализации безопасных с точки зрения типов интерфейсов, смотрите Реализацию Безопасный с точки зрения типов Интерфейс и Объединяйтесь в Приложение.NET.
Каждый блок.NET MATLAB Compiler SDK экспортирует один или несколько открытых методов, которые принимают и возвращают данные с помощью MWArray
объекты. Добавление безопасного с точки зрения типов интерфейса к блоку MATLAB Compiler SDK создает другой набор методов (с теми же именами), которые принимают и возвращают нативные типы.NET.
Можно создать несколько безопасных с точки зрения типов методов интерфейса для одной функции MATLAB. Безопасные с точки зрения типов методы интерфейса следуют стандартным методам.NET для перегрузки.
Следующая фигура иллюстрирует информационные каналы между хост-приложением.NET и развернутой функцией MATLAB через безопасный с точки зрения типов интерфейс.
Функция MATLAB addOne
возвращает его вход плюс один. Развертывание addOne
с безопасным с точки зрения типов интерфейсом создает два.NET addOne
методы:
Тот, который принимает и возвращает.NET double
Тот, который принимает и возвращает MWArray
Заметьте, что безопасные с точки зрения типов методы сосуществуют с MWArray
методы. Ваше приложение.NET может вызовы смешивания и подгонки любого типа метода, как соответствующие.