MWHttpClient
В этом примере показано, как записать приложение C # для вызова MATLAB® функция, развернутая в MATLAB Production Server™. Приложение C # использует клиентскую библиотеку MATLAB Production Server .NET.
Прикладной программист .NET обычно выполняет эту задачу. Учебное руководство предполагает, что у вас есть Microsoft® Визуальная студия® и .NET, установленный на вашем компьютере.
Откройте Microsoft Visual Studio.
Нажмите File > New > Project.
В диалоговом окне «Новый проект» выберите шаблон, который необходимо использовать. Например, если необходимо создать консольное приложение C # в Visual Studio 2017, выберите Visual C# > Windows Desktop в левой панели навигации, затем выберите Console App (.Net Framework).
Введите имя проекта в поле Name (для примера, Magic
).
Нажмите OK. Ваши Magic
создаётся исходный интерпретатор, обычно именованная Program.cs
, по умолчанию.
Создайте ссылку в своем Magic
проект в библиотеку среды выполнения клиента MATLAB Production Server. В Microsoft Visual Studio выполните следующие шаги:
На панели Solution Explorer в Microsoft Visual Studio (обычно с правой стороны) щелкните правой кнопкой мыши Magic
выберите Add > Browse.
Перейдите к расположению библиотеки среды выполнения клиента MATLAB Production Server .NET.
Библиотека находится в
. Выберите matlabroot
\ toolbox\compiler _ sdk\mps _ client\dotnetMathWorks.MATLAB.ProductionServer.Client.dll
файл.
Клиентская библиотека также доступна для загрузки по адресу https://www.mathworks.com/products/matlab-production-server/client-libraries.html
.
Нажмите OK. Ваш проект Microsoft Visual Studio теперь ссылается на MathWorks.MATLAB.ProductionServer.Client.dll
.
Написание функции MATLAB mymagic
который использует magic
функция для создания магического квадрата, упаковать mymagic
в развертываемый архив под названием mymagic_deployed
затем разверните его на сервере. Функция mymagic
принимает одну int
Вход и возвраты магический квадрат как 2-D double
массив. Пример принимает, что образец сервера работает в http://localhost:9910
.
function m = mymagic(in)
m = magic(in);
Активируйте развернутую функцию MATLAB mymagic
от клиента .NET через интерфейс .NET. Создайте интерфейс C # Magic
для соответствия функции MATLAB mymagic
.
Интерфейс .NET имеет то же количество входов и выходов, что и функция MATLAB.
Поскольку вы развертываете одну функцию MATLAB на сервере, вы задаете один соответствующий метод .NET в коде C #.
Функция MATLAB и интерфейс .NET обрабатывают одни и совпадающие типы данных - входной тип int
и выход 2-D double
.
В клиентской программе C # используйте интерфейс Magic
для определения типа ссылки на прокси-объект в CreateProxy
способ. The CreateProxy
метод требует URL для развертываемого архива, который содержит mymagic
функция (http://localhost:9910/mymagic_deployed
) как входной параметр.
public interface Magic { double[,] mymagic(int in1); }
Откройте проект Microsoft Visual Studio Magic
который вы создали ранее.
В Program.cs
вкладка, вставьте в код ниже.
using System; using System.Net; using MathWorks.MATLAB.ProductionServer.Client; namespace Magic { public class MagicClass { public interface Magic { double[,] mymagic(int in1); } public static void Main(string[] args) { MWClient client = new MWHttpClient(); try { Magic me = client.CreateProxy<Magic> (new Uri("http://localhost:9910/mymagic_deployed")); double[,] result1 = me.mymagic(4); print(result1); } catch (MATLABException ex) { Console.WriteLine("{0} MATLAB exception caught.", ex); Console.WriteLine(ex.StackTrace); } catch (WebException ex) { Console.WriteLine("{0} Web exception caught.", ex); Console.WriteLine(ex.StackTrace); } finally { client.Dispose(); } Console.ReadLine(); } public static void print(double[,] x) { int rank = x.Rank; int[] dims = new int[rank]; for (int i = 0; i < rank; i++) { dims[i] = x.GetLength(i); } for (int j = 0; j < dims[0]; j++) { for (int k = 0; k < dims[1]; k++) { Console.Write(x[j, k]); if (k < (dims[1] - 1)) { Console.Write(","); } } Console.WriteLine(); } } } }
Значение URL-адреса ("http://localhost:9910/mymagic_deployed"
), используемый для создания прокси, содержит три части.
адрес сервера (localhost
).
номер порта (9910
).
имя архива (mymagic_deployed
).
Создайте приложение. Щелкните Build > Build Solution.
Запустите приложение. Щелкните Debug > Start Without Debugging. Программа возвращает следующие выходы консоли.
16,2,3,13 5,11,10,8 9,7,6,12 4,14,15,1