Безопасные с точки зрения типов интерфейсы

MATLAB® типы данных несовместимы с нативными типами.NET. Чтобы отправить данные между вашим приложением и.NET, вы выполняете эти задачи:

  1. Упорядочьте данные от входных данных.NET до развернутой функции путем создания MWArray объект из нативных данных о.NET. public функции в развернутом возврате компонента MWArray объекты.

  2. Упорядочьте данные выхода MATLAB в MWArray в нативные данные о.NET путем вызова одного из MWArray маршалинг методов (ToArray(), например).

Ручной маршалинг данных без безопасного с точки зрения типов интерфейса

Вручную маршалинг данных добавляет сложность и потенциальные места ошибки к задаче интеграции развернутых компонентов в приложение.NET. Это особенно верно по этим причинам:

  • Ваше приложение не может обнаружить ошибки несоответствия типов до времени выполнения. Например, вы можете случайно создать MWArray от строки и передачи массив к развернутой функции, которая ожидает номер. Поскольку код обертки, сгенерированный MATLAB Compiler SDK™, ожидает MWArray, компилятор.NET не может обнаружить эту ошибку и развернутую функцию или выдает исключение или дает неправильный ответ.

  • Ваши конечные пользователи должны изучить, как использовать MWArray тип данных или альтернативно маскирует MWArray тип данных позади вручную записанного (и вручную обеспеченный) API. Это вводит нежелательное учебное время и помещает требования к ресурсам в потенциально превышенный возможности штат.

Маршалинг данных без безопасного с точки зрения типов интерфейса

A flowchart that depicts .NET data that passes through the MATLAB data constructor to become MATLAB MWArray data, which passes through a wrapper function layer to the MATLAB function. The function outputs MWArray data that passes back through the wrapper function layer and is then converted from MATLAB data to .NET data.

Можно найти MWArray методы, более эффективные при передаче больших значений данных в циклах к одной или нескольким развернутым функциям. В таких случаях, создавая MWArray объект позволяет вам упорядочивать данные только однажды, тогда как безопасные с точки зрения типов интерфейсы упорядочивают входные параметры на каждом вызове.

Упрощенный маршалинг данных с безопасным с точки зрения типов интерфейсом

Можно постараться не выполнять MWArray маршалинг данных при помощи type-safe interfaces. Такие интерфейсы минимизируют явные преобразования типов путем сокрытия MWArray введите из вызывающего приложения. Используя безопасные с точки зрения типов интерфейсы позволяет разработчикам.NET работать непосредственно со знакомыми собственными типами данных.

Маршалинг данных с безопасным с точки зрения типов интерфейсом

A flowchart that depicts user visible .NET data that passes through a wrapper function layer, which transforms it into the encapsulated MATLAB MWArray data, then passes it to the MATLAB function. The function outputs MWArray data that passes back through the wrapper function layer to become .NET data.

Некоторые причины реализовать безопасные с точки зрения типов интерфейсы включают:

  • Вы избегаете обучения и кодирующих затрат, сопоставленных с тем, чтобы учить конечных пользователей работать с MWArray API.

  • Вы минимизируете стоимость данных, необходимо упорядочить по любому размещению MWArray объекты в безопасных с точки зрения типов интерфейсах или путем вызова MWArrayфункции в развернутом коде MATLAB.

  • Гибкость — вы смешиваете безопасные с точки зрения типов интерфейсы с ручным маршалингом данных, чтобы хранить данные различных размеров и схем доступа. Например, у вас может быть несколько больших объектов данных (изображения, например), который понес бы чрезмерные расходы к вашей организации, если управляемый с безопасным с точки зрения типов интерфейсом. Путем смешивания безопасных с точки зрения типов интерфейсов и маршалинга руководства, меньшие типы данных могут быть управляемыми автоматически с безопасным с точки зрения типов интерфейсом, и большие данные могут быть управляемыми по мере необходимости.

Для получения дополнительной информации при реализации безопасных с точки зрения типов интерфейсов, смотрите Реализацию Безопасный с точки зрения типов Интерфейс и Объединяйтесь в Приложение.NET.

Как безопасная с точки зрения типов работа интерфейсов

Каждый блок.NET MATLAB Compiler SDK экспортирует один или несколько открытых методов, которые принимают и возвращают данные с помощью MWArray объекты. Добавление безопасного с точки зрения типов интерфейса к блоку MATLAB Compiler SDK создает другой набор методов (с теми же именами), которые принимают и возвращают нативные типы.NET.

Можно создать несколько безопасных с точки зрения типов методов интерфейса для одной функции MATLAB. Безопасные с точки зрения типов методы интерфейса следуют стандартным методам.NET для перегрузки.

Следующая фигура иллюстрирует информационные каналы между хост-приложением.NET и развернутой функцией MATLAB через безопасный с точки зрения типов интерфейс.

Architecture of a deployed component with a type-safe Interface

Функция MATLAB addOne возвращает его вход плюс один. Развертывание addOne с безопасным с точки зрения типов интерфейсом создает два.NET addOne методы:

  • Тот, который принимает и возвращает.NET double

  • Тот, который принимает и возвращает MWArray

Заметьте, что безопасные с точки зрения типов методы сосуществуют с MWArray методы. Ваше приложение.NET может вызовы смешивания и подгонки любого типа метода, как соответствующие.

Похожие темы