主要内容

创建c#客户端使用MWHttpClient

这个例子展示了如何编写一个c#应用程序来调用MATLAB®部署到的功能MATLAB生产服务器.c#应用程序使用MATLAB制作服务器. net客户端库。

. net应用程序程序员通常执行此任务。本教程假设您有Microsoft®Visual Studio®和。net安装在你的电脑上。

创建微软Visual Studio项目

  1. 打开Microsoft Visual Studio。

  2. 点击File >新建>项目

  3. 在“新建项目”对话框中,选择要使用的模板。例如,如果您想在Visual Studio 2017中创建c#控制台应用程序,请选择Visual c#>Windows桌面在左侧导航窗格中,然后选择控制台应用程序(。净框架)

  4. 类型中的项目名称的名字字段(例如,魔法).

  5. 点击好吧.你的魔法创建源shell,通常命名为Program.cs,默认为。

创建对客户端运行库的引用

创建一个引用魔法项目的MATLAB制作服务器客户端运行时库。在Microsoft Visual Studio中执行以下步骤:

  1. 解决方案资源管理器窗格中的Microsoft Visual Studio(通常在右侧),右键单击您的魔法项目,选择添加>浏览

  2. 浏览至MATLAB制作服务器. net客户端运行时库位置。

    图书馆位于matlabroot\工具箱\ compiler_sdk \ mps_client \ dotnet.选择MathWorks.MATLAB.ProductionServer.Client.dll文件。

    客户端库也可在以下网站下载//www.tatmou.com/下载188bet金宝搏products/matlab-production-server/client-libraries.html

  3. 点击好吧.你的Microsoft Visual Studio项目现在引用MathWorks.MATLAB.ProductionServer.Client.dll

部署MATLAB对服务器的功能

编写MATLAB函数mymagic它使用魔法功能创建魔术方块,包mymagic进入一个名为mymagic_deployed,然后将其部署到服务器。这个函数mymagic只需要一个int输入并返回一个二维的魔方数组中。该示例假设服务器实例运行在http://localhost:9910

函数M = mymagic(in);

用c#设计。net接口

调用部署的MATLAB函数mymagic从。net客户端到。net接口。设计一个c#界面魔法来匹配MATLAB函数mymagic

  • . net接口具有与MATLAB函数相同数量的输入和输出。

  • 因为要在服务器上部署一个MATLAB函数,所以要在c#代码中定义一个对应的. net方法。

  • MATLAB函数和.NET接口都处理相同的数据类型——输入类型int输出类型为2-D

  • 在c#客户端程序中,使用接口魔法控件中代理对象引用的类型CreateProxy方法。的CreateProxy方法需要指向包含mymagic函数(http://localhost:9910/mymagic_deployed)作为输入参数。

public interface Magic {double[,] mymagic(int in1);}

编写、构建和运行。net应用程序

  1. 打开Microsoft Visual Studio项目魔法你之前创建的。

  2. Program.cs选项卡,粘贴下面的代码。

    使用系统;使用System.Net;使用MathWorks.MATLAB.ProductionServer.Client;命名空间Magic{公共类MagicClass{公共接口Magic {double[,] mymagic(int in1);} public static void Main(string[] args) {MWClient客户端=新的MWHttpClient();尝试{魔法我=客户。CreateProxy (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”)用于创建代理,该代理包含三个部分。

    • 服务器地址(本地主机).

    • 端口号(9910).

    • 存档名称(mymagic_deployed).

  3. 构建应用程序。点击构建>构建解决方案

  4. 运行应用程序。点击调试>无调试启动.该程序返回以下控制台输出。

    16、2、3、13 5、11、10、8 9、7、6、12 4、14、15、1

相关的话题