MWHttpClient
这个例子展示了如何编写一个C#应用程序来调用MATLAB®部署到的功能MATLAB生产服务器™.C#应用程序使用MATLAB生产服务器.NET客户端库。
NET应用程序程序员通常执行此任务。本教程假定您有Microsoft®Visual Studio®和.NET安装在您的计算机上。
打开Microsoft Visual Studio。
点击文件>新建>项目.
在“新建项目”对话框中,选择要使用的模板。例如,如果要在Visual Studio 2017中创建C#console应用程序,请选择Visual C#>Windows桌面在左侧导航窗格中,然后选择控制台应用程序(.Net Framework).
在列表中键入项目的名称名称字段(例如,魔法
).
点击好的你的魔法
创建源shell,通常命名为Program.cs
,默认情况下。
在应用程序中创建引用魔法
向MATLAB生产服务器客户端运行时库。在Microsoft Visual Studio中,执行以下步骤:
在里面解决方案管理器Microsoft Visual Studio中的窗格(通常在右侧),右键单击您的魔法
项目,选择添加>浏览.
浏览到MATLAB生产服务器.NET客户端运行时库位置。
在室内MATLAB生产服务器安装,图书馆位于
哪里$MPS_安装
\客户端\dotnet
是在什么地方MATLAB生产服务器已安装。请选择$MPS_安装
MathWorks.MATLAB.ProductionServer.Client.dll
文件。
客户库也可用于下载//www.tatmou.com/下载188bet金宝搏products/matlab-production-server/client-libraries.html
.
点击好的你的Microsoft Visual Studio项目现在引用MathWorks.MATLAB.ProductionServer.Client.dll
.
写一个matlab函数我的魔法
使用魔术
(MATLAB)函数创建一个幻方,包我的魔法
进入一个名为mymagic_deployed
,然后将其部署到服务器我的魔法
takes㈡
输入并返回一个二维幻方双重的
该示例假定服务器实例正在运行http://localhost:9910
.
功能m=mymagic(in)m=magic(in);
有关创建存档并将其部署到服务器的信息,请参阅为MATLAB生产服务器创建可部署的归档和共享可部署归档.
调用已部署的MATLAB函数我的魔法
从.NET客户端通过.NET接口。设计一个C#接口魔法
匹配MATLAB函数我的魔法
.
NET接口具有与MATLAB函数相同数量的输入和输出。
由于要在服务器上部署一个MATLAB函数,因此需要在C#代码中定义一个相应的.NET方法。
MATLAB函数和.NET接口处理相同的数据类型输入类型㈡
和输出类型2-D双重的
.
在C#客户端程序中,使用魔法
在中指定代理对象引用的类型createproxy.
方法createproxy.
方法需要指向包含我的魔法
功能 (http:// localhost:9910 / mymagic_deployed
)作为输入参数。
公共接口魔术{double[,]mymagic(intin1);}
打开Microsoft Visual Studio项目魔法
你早先创造的。
在里面Program.cs
选项卡,粘贴下面的代码。
使用系统;使用System.Net;使用mathworks.matlab.productionserver.client;命名空间魔法{公共类魔术{公共界面魔术{double [,] mymagic(int1);}公共静态void main(String [] args){mwclient client = new mwhttpclient();尝试{魔法ME = Client.createProxy <魔术>(新URI(“http:// localhost:9910 / mymagic_deployed”);Double [,]结果1 = me.magic(4);打印(结果1);} catch(matlabexception ex){console.writeline(“{0} matlab异常捕获”。,前);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
).
构建应用程序。单击建造>构建解决方案.
运行应用程序。单击调试>不调试启动.该程序返回以下控制台输出。
16,2,3,13 5,11,10,8 9,7,6,12 4,14,15,1