主要内容

本页采用了机器翻译。点击此处可查看英文原文。

.NET 客户端编码最佳实践

静态代理接口指南

编写 .NET 接口来调用 MATLAB® 代码时,请记住以下准则:

  • 接口公开的方法名称必须与正在部署的 MATLAB 函数名称相匹配。该方法必须具有与 MATLAB 函数相同数量的输入和输出。

  • 方法的输入和输出类型必须能够与 MATLAB 相互转换。

  • 输入和输出的数量必须与 MATLAB 支持的兼容。

  • 如果您正在使用 MATLAB 结构体,请记住字段名称区分大小写,并且必须在 MATLAB 函数和相应的用户定义的 .NET 类型中匹配。

  • 接口名称可以是任何有效的 .NET 名称。

  • 您的代码应该支持异常处理。

.NET 客户端前提条件

完成以下步骤来准备您的 MATLAB Production Server™ .NET 开发环境。

  1. 安装 Microsoft® Visual Studio®。有关受支持的软件列表,包括 IDE 和 Microsoft .NET Framework,请参阅受支持和兼容的编译器

  2. 验证您的应用程序是否已部署到正在运行的服务器实例。

处理异常

下表列出了错误以及用于声明异常的相应方法。

错误 方法例外
MATLAB 错误MATLABExceptionMathWorks.MATLAB.ProductionServer.Client. MWClient.MATLABException
客户端与服务器通信期间发生的传输错误WebExceptionSystem.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 中。

另请参阅

主题