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

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

Совет

Объекты данных, которые просто проходят или через цель или через среды MATLAB®, возможно, не должны быть упорядочены, особенно если они не пересекают контур процесса. Поскольку маршалинг является дорогостоящим, только упорядочьте по требованию.

После того, как вы запишете и протестируете свой код MATLAB, разработаете интерфейс.NET, который поддерживает нативные типы через API или в C# или в Визуальном Basic®. В этом примере, интерфейсе, IAddOne, написан в C#.

Каждый метод в интерфейсе должен точно совпадать с развернутой функцией MATLAB.

IAddOne интерфейс задает шесть перегрузок addOne:

using System.ServiceModel;

[ServiceContract]
public interface IAddOne
{
    [OperationContract(Name = "addOne_1")]
    int addOne(int x);

    [OperationContract(Name = "addOne_2")]
    void addOne(ref int y, int x);

    [OperationContract(Name = "addOne_3")]
    void addOne(int x, ref int y);

    [OperationContract(Name = "addOne_4")]
    System.Double addOne(System.Double x);

    [OperationContract(Name = "addOne_5")]
    System.Double[] addOne(System.Double[] x);

    [OperationContract(Name = "addOne_6")]
    System.Double[][] addOne(System.Double[][] x);
}

Как вы видите, все методы имеют вход того и один выход (чтобы совпадать с addOne MATLAB функция), хотя тип и положение этих параметров варьируются.

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

  • В функции MATLAB объявление выводит, появляются перед входными параметрами. Например, в addOne функция, выход y появляется перед входом x. Это упорядоченное расположение не требуется для функций интерфейса.NET. Входные параметры могут появиться, прежде или после того, как выходные параметры или эти два могут быть смешаны вместе.

  • MATLAB Compiler SDK™ совпадает с функциями интерфейса.NET к общедоступным функциям MATLAB количеством аргумента и именем функции. В addOne пример, и функция интерфейса.NET и функция MATLAB нужно назвать addOne и обе функции должны иметь равное количество заданных аргументов.

  • Номер и относительный порядок аргументов ввода и вывода очень важны.

    • В оценке порядка параметра только порядок подобных параметров (вводы или выводы) рассматривается, независимо от того, где они появляются в списке параметров.

    • Функция в интерфейсе может иметь меньше входных параметров, чем его соответствующая функция MATLAB, но не больше.

  • Отображение аргумента происходит согласно порядку аргументов, а не имени аргумента.

  • Функциональное возвращаемое значение, если задано, рассчитывает как первый выход.

  • Необходимо использовать out параметры для нескольких выходных параметров.

    • Поочередно, ref параметр может использоваться в out. ref и out параметры синонимичны.

  • MATLAB не поддерживает перегрузку функций. Таким образом все предоставленные пользователями перегрузки функции с именем сопоставят с функцией, сгенерированной MATLAB Compiler SDK.

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

Для просмотра документации необходимо авторизоваться на сайте