使用 MWArray
API 访问可远程访问的 .NET 程序集
创建远程组件后,您可以使用 MWArray
API 设置控制台服务器和客户端。有关选择适合您的访问需求的正确 API 的详细信息,请参阅比较 MWArray 和用于远程程序集的本机 .NET API。
编码并构建托管服务器应用程序和配置文件
服务器应用程序托管内置的远程组件创建可远程访问的 .NET 程序集。
使用 Microsoft® Visual Studio® 工程文件 MagicSquareServer\MagicSquareMWServer.csproj
构建服务器:
将生成的组件程序集的引用更改为
MagicSquareComp.dll
。选择合适的构建平台。
选择 Debug 或 Release 模式。
构建
MagicSquareMWServer
工程。提供
MagicSquareMWServer
的配置文件。
MagicSquareServer 代码
使用位于文件 MagicSquareServer\MagicSquareServer.cs
中的服务器的 C# 代码:
这段代码做了以下处理:
读取相关配置文件以确定
它将承载的组件的名称
要使用的远程协议和消息格式
远程组件的租用时间
表示服务器处于活动状态,并等待输入回车符后再终止。
MagicSquareServer 配置文件
MagicSquareServer
的配置文件位于文件 MagicSquareServer\MagicSquareServer.exe.config
中。整个配置文件以 XML 编写,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall"
type="MagicSquareComp.MagicSquareClass, MagicSquareComp"
objectUri="MagicSquareClass.remote" />
</service>
<lifetime leaseTime= "5M" renewOnCallTime="2M"
leaseManagerPollTime="10S" />
<channels>
<channel ref="tcp" port="1234">
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channel>
</channels>
</application>
<debug loadTypes="true"/>
</system.runtime.remoting>
</configuration>
本规范规定:
访问远程组件的模式 - 在本例中为单一调用模式
远程组件的名称、组件集以及用于访问远程组件的对象 URI(统一资源标识符)
远程组件的租用时间
远程协议 (
TCP/IP
) 和端口号消息格式化程序 (
binary
) 和通信通道的权限(full
信任)服务器调试选项
构建客户端应用程序和配置文件
在单独的进程中运行的客户端应用程序访问您之前构建的服务器应用程序中运行的远程组件。(请参阅编码并构建托管服务器应用程序和配置文件。)
接下来,使用 Microsoft Visual Studio 工程文件 MagicSquareClient\MagicSquareMWClient.csproj
构建远程客户端。该文件引用了共享数据转换程序集
和生成的组件接口程序集 matlabroot
\toolbox\dotnetbuilder\bin\win64\v4.0\ MWArray.dllIMagicSquareComp
。
要使用 Microsoft Visual Studio 创建远程客户端:
选择合适的构建平台。
选择 Debug 或 Release 模式。
构建
MagicSquareMWClient
工程。提供
MagicSquareMWServer
的配置文件。
MagicSquareClient 代码
使用位于文件 MagicSquareClient\MagicSquareClient.cs
中的客户端的 C# 代码。
此代码执行以下操作:
客户端读取相关的配置文件来获取远程组件的名称和位置。
客户端使用静态
Activator.GetObject
方法实例化可远程访问对象从此时起,远程客户端调用可远程组件上的方法就像调用本地组件方法一样。
MagicSquareClient 配置文件
幻方客户端的配置文件位于文件 MagicSquareClient\MagicSquareClient.exe.config
中。以 XML 编写的配置文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="MagicSquareServer"
value="tcp://localhost:1234/MagicSquareClass.remote"/>
</appSettings>
<system.runtime.remoting>
<application>
<channels>
<channel name="MagicSquareChannel" ref="tcp" port="0">
<clientProviders>
<formatter ref="binary" />
</clientProviders>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>
</configuration>
本规范规定:
远程组件服务器的名称和远程组件 URI(统一资源标识符)
远程协议 (
TCP/IP
) 和端口号消息格式化程序 (
binary
) 和通信通道的权限(full
信任)
启动服务器应用程序
通过执行以下操作启动服务器:
打开 DOS 或 UNIX® 命令行窗口并导航到
MagicSquareServer\bin\x86\v4.0\Debug
。运行
MagicSquareServer.exe
。您将看到消息:Magic Square Server started...
启动客户端应用程序
通过执行以下操作启动客户端:
打开 DOS 或 UNIX 命令行窗口并导航到
MagicSquareClient\bin\x86\v4.0\Debug
。运行
MagicSquareClient.exe
。MATLAB® Runtime 初始化后,您应该看到以下输出:Magic square of order 4 162313 511108 97612 414151