主要内容

创建一个c#客户端

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

一个。net程序的程序员通常执行这个任务。本教程假设您已经微软®Visual Studio®和。net安装在你的电脑上。

创建微软Visual Studio项目

  1. 打开微软Visual Studio。

  2. 点击File > New >项目

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

  4. 输入项目的名称的名字字段(例如,魔法)。

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

创建引用客户机运行时库

在你创建一个引用魔法项目的MATLAB生产服务器客户端运行时库。在微软Visual Studio,执行以下步骤:

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

  2. 浏览到MATLAB生产服务器. net客户端运行时库的位置。

    在一个本地MATLAB生产服务器安装,图书馆位于MPS_INSTALL美元\ client \ dotnet,在那里MPS_INSTALL美元的位置吗MATLAB生产服务器安装。选择MathWorks.MATLAB.ProductionServer.Client.dll文件。

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

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

部署MATLAB功能服务器

编写一个MATLAB函数mymagic使用魔法(MATLAB)函数创建一个幻方,包mymagic到一个可部署归档mymagic_deployed,然后将其部署到服务器。这个函数mymagic需要一个int作为一个二维输入并返回一个幻方数组中。这个例子假定服务器实例在运行http://localhost: 9910

函数m = mymagic(在)m =魔法(的);

有关创建和部署一个归档文件的信息到服务器,看到的为MATLAB生产服务器创建可部署归档文件MATLAB存档部署到生产服务器

设计。net c#接口

调用MATLAB函数部署mymagic从。net客户端通过. net接口。设计一个c#接口魔法与MATLAB函数mymagic

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

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

  • MATLAB函数和。net接口types-input过程相同的数据类型int和输出型二维

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

公共接口魔法{双[,]mymagic (int in1);}

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

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

  2. Program.cs标签,粘贴在下面的代码。

    使用系统;使用System.Net;使用MathWorks.MATLAB.ProductionServer.Client;名称空间魔法{公开课MagicClass{公共接口魔法{双[,]mymagic (int in1);}公共静态void Main (string [] args) {MWClient客户= new 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

相关的话题