创建一个c#客户端
这个例子展示了如何编写一个c#应用程序调用MATLAB®功能部署到MATLAB生产服务器™。c#应用程序使用MATLAB生产服务器net客户端库。
一个。net程序的程序员通常执行这个任务。本教程假设您已经微软®Visual Studio®和。net安装在你的电脑上。
创建微软Visual Studio项目
打开微软Visual Studio。
点击File > New >项目。
在新项目对话框中,选择您想要使用的模板。例如,如果您想创建一个c#控制台应用程序在Visual Studio 2017中,选择Visual c#>Windows桌面在左侧导航窗格,然后选择控制台应用程序(。净框架)。
输入项目的名称的名字字段(例如,
魔法
)。点击好吧。你的
魔法
源创建shell时,通常命名Program.cs
默认情况下,。
创建引用客户机运行时库
在你创建一个引用魔法
项目的MATLAB生产服务器客户端运行时库。在微软Visual Studio,执行以下步骤:
在解决方案资源管理器窗格在Microsoft Visual Studio(通常在右边),右击你的
魔法
项目,选择添加>浏览。浏览到MATLAB生产服务器. net客户端运行时库的位置。
在一个本地MATLAB生产服务器安装,图书馆位于
,在那里MPS_INSTALL美元
\ client \ dotnet
的位置吗MATLAB生产服务器安装。选择MPS_INSTALL美元
MathWorks.MATLAB.ProductionServer.Client.dll
文件。客户端库也可以下载
//www.tatmou.com/下载188bet金宝搏products/matlab-production-server/client-libraries.html
。点击好吧。你的微软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应用程序
打开微软Visual Studio项目
魔法
你之前创建。在
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
)。
构建应用程序。点击构建>构建解决方案。
运行应用程序。点击调试>开始没有调试。程序返回下面的控制台输出。
16日,2、3、13 5,11日,10日8 9、7、6、12 4,14日,15日,1