.NET 客户端编码最佳实践
静态代理接口指南
编写 .NET 接口来调用 MATLAB® 代码时,请记住以下准则:
接口公开的方法名称必须与正在部署的 MATLAB 函数名称相匹配。该方法必须具有与 MATLAB 函数相同数量的输入和输出。
方法的输入和输出类型必须能够与 MATLAB 相互转换。
输入和输出的数量必须与 MATLAB 支持的兼容。
如果您正在使用 MATLAB 结构体,请记住字段名称区分大小写,并且必须在 MATLAB 函数和相应的用户定义的 .NET 类型中匹配。
接口名称可以是任何有效的 .NET 名称。
您的代码应该支持异常处理。
.NET 客户端前提条件
完成以下步骤来准备您的 MATLAB Production Server™ .NET 开发环境。
安装 Microsoft® Visual Studio®。有关受支持的软件列表,包括 IDE 和 Microsoft .NET Framework,请参阅受支持和兼容的编译器。
验证您的应用程序是否已部署到正在运行的服务器实例。
处理异常
下表列出了错误以及用于声明异常的相应方法。
| 错误 | 方法 | 例外 |
|---|---|---|
| MATLAB 错误 | MATLABException | MathWorks.MATLAB.ProductionServer.Client. MWClient.MATLABException |
| 客户端与服务器通信期间发生的传输错误 | WebException | System.Net.WebException |
管理系统资源
.NET 客户端与其交互的服务器之间的连接由一个或多个 MWHttpClient 实例管理。您可以使用单个实例与多个服务器通信,也可以创建多个实例来管理多个服务器。使用 MWHttpClient 实例创建的代理对象与服务器通信,直到调用该实例的 Dispose 方法。因此,仅当不再需要 Dispose 实例时才调用 MWHttpClient 方法以回收系统资源,这一点很重要。
在不需要的客户端实例上调用 Dispose 方法来释放本机资源,例如由 MWHttpClient 实例创建的打开连接。
您可以通过以下两种方式之一调用 Dispose:
直接调用
Dispose- 直接在您想要释放资源的对象上调用该方法:client.Dispose();
using关键字 - 使用Dispose关键字在MWHttpClient实例上隐式调用using。通过这样做,您不必明确调用Dispose方法 - .NET Framework 会为您处理清理工作。以下是演示如何使用
using关键字的代码片段:using (MWClient client = new MWHttpClient(new TestConfigDispose())) { // Use client to create proxy instances and invoke // MATLAB functions.... }
小心
在 Dispose 的实例上调用 MWClient 会关闭与该实例绑定的所有打开的套接字。
.NET 和 MATLAB 类型的数据转换
有关客户端和服务器编组的受支持的 MATLAB 类型的信息,请参阅 客户端和服务器封送处理支持的 MATLAB 数据类型
在哪里可以找到 API 文档
.NET 客户端的 API 文档安装在 中。$MPS_INSTALL/client