主要内容

创建窗户通信基础组件

以下示例向您展示了如何实现一个窗户®通信基础(WCF)组件使用类型安全接口和集成到一个客户机-服务器。net应用程序。

对于一个额外的例子关于类型安全接口和数据转换规则,明白了实现类型安全接口和集成到. net应用程序中

关于WCF的最新信息,明白了Windows Communication Foundation是什么在微软®文档。

编写和测试你的MATLAB代码

创建您的MATLAB®程序,然后测试代码之前实现类型安全接口。MATLAB程序必须匹配的函数声明的母语。net接口。

对于这个示例,将下面的代码保存为addOne.m

函数y = addOne (x)%的输入必须是一个标量或单个或多个维度的矩阵如果~ isnumeric (x)错误(输入必须为数字。输入% s。类(x));结束y = x + 1;结束

在MATLAB命令提示符,输入addOne ([1, 2, 3])

的输出是:

2 3 4

实现WCF接口

MATLAB代码编写和测试后,在c#或Visual Basic开发一个接口,通过API支持本机类型。万博1manbetx

  1. 开放微软Visual Studio®并创建一个新类库(。净框架)项目命名IAddOne

  2. 在解决方案资源管理器窗口中在Visual Studio中,重命名Class1.cs文件IAddOne.cs。在此文件中,编写WCF的源代码接口访问组件。

    在这个例子中,IAddOne接口是用c#写的,指定六过载addOne:

    IAddOne.cs

    注意,在WCF的实现addOne,你布置的方法OperationContract财产。你给每个方法独特的操作名称,您指定的的名字的属性OperationContract

    请注意

    当你使用WCF,重载的函数必须有独特的名字。

    接口中的每个方法必须精确匹配一个部署MATLAB函数。有一个输入和一个输出(所有方法与MATLAB相匹配addOne函数),尽管这些参数变化的类型和位置。

  3. 构建>配置管理器和变化的平台任何CPUx64

  4. 建设项目微软Visual Studio。该文件IAddOne.dll在构建生成文件夹。

    请注意

    这个示例假设您的程序集仅包含IAddOne。实际上,它更有可能IAddOne已经编译好的程序集的一部分。大会可能完成之前编写的MATLAB函数。

使用图书馆创建net程序集编译器应用程序

库的编译器应用程序生成类型安全API构建您的组件时,如果选择以下选项。

  1. 创建一个库编译器项目并选择net程序集类型列表。

  2. 使用下列值:

    库名称 AddOneComp
    类名 机制
    文件编制 addOne.m

  3. 扩大额外的运行时设置部分。

    类型安全的API部分,请执行以下操作:

    1. 选择使类型安全API

    2. 界面组装字段中,指定的位置类型安全/ WCF接口组装IAddOne.dll你建造。

    3. 选择IAddOne接口的net的界面下拉框。

      提示

      如果下拉是空白,库编译器可能无法找到任何。net接口在组装你选择。

    4. 离开名称空间MEF元数据字段为空。

    5. 指定机制类的包装类字段。

  4. 单击按钮来构建项目。

    该文件AddOneCompNative.dll生成的for_redistribution_files_only文件夹中。

创建net程序集使用compiler.build.dotNETAssembly

请注意

如果您已经创建了一个. net组装使用库的编译器应用程序,您可以跳过本节。然而,如果你想知道如何创建一个. net汇编的MATLAB命令窗口使用编程方法,遵循这些指示。

生成与组件构建使用类型安全的APIcompiler.build.dotNETAssembly函数,完成以下步骤:

  1. 构建. net程序集使用compiler.build.dotNETAssembly。使用名称-值参数来指定程序集名称和类名。

    compiler.build.dotNETAssembly (“addOne.m”,“AssemblyName”,“AddOneComp”,“名称”,“机制”);
  2. 导航到生成的AddOneCompdotNETAssembly目录中。

  3. 通过使用生成类型安全的APIntswrap从MATLAB命令:

    ntswrap (“c”,“AddOneComp.Mechanism”,“——”,“IAddOne.dll”,“我”,“IAddOne”);

    并不是所有的参数都是互相兼容。看到ntswrap有关所有的命令选项。

    提示

    如果IAddOne.dll大会不是在当前文件夹,指定完整路径。

    这个命令生成装配MechanismIAddOne.dll包含的类型安全的APIMATLAB编译器SDK™机制的命名空间AddOneCompNative

使用WCF开发服务器程序界面

开发一个服务器程序,它提供了访问(通过WCFServiceContract)的过载addOneWCF定义的IAddOne接口。程序引用一个App.configXML配置文件。

WCF服务器程序装入WCF-basedaddOne.Mechanism组件,使它可以通过类型安全的SOAP客户端mechanismIAddOne接口。

提示

在编写你的界面时,你将编码处理交错数组,而不是矩形数组。有关更多信息,请参见锯齿状阵列处理

编译服务器程序使用微软Visual Studio通过以下步骤:

  1. 开放微软Visual Studio并创建一个c#控制台应用程序(。净框架)被称为AddOneApp

  2. 将以下代码复制到生成的Program.cs在你的项目:

    WCF服务器程序

  3. 添加以下配置文件App.config你的项目。您可能需要修改上市。net框架的版本。

    App.config XML文件

  4. 在项目中添加引用以下文件:

    这个引用: 定义:
    IAddOne.dll . net原生类型接口IAddOne
    MechanismIAddOne.dll 生成的类型安全的API
    AddOneCompNative.dll 生成的. net汇编

    请注意

    不像其他。net部署场景,您不需要参考MWArray.dll在服务器程序源代码。的MWArray数据类型是类型安全的API背后隐藏着的MechanismIAddOne

  5. 添加一个引用System.ServiceModel上市程序集

  6. 构建>配置管理器和变化的平台任何CPUx64

  7. 编译并运行服务器程序微软Visual Studio

    程序显示以下输出:

    除了服务器运行……按任意键关闭服务。

    按以下的关键结果。

    关闭服务....

为客户生成代理代码

配置您的客户端与服务器通信通过运行自动代理生成工具svcutil.exe。大多数版本的微软Visual Studio可以自动生成客户端代理代码从服务器的元数据。

谨慎

在你使用这个步骤生成客户端代理代码,服务器必须可以运行。否则,客户端将找不到服务器。

  1. 创建一个客户端项目微软Visual Studio

  2. 添加引用的使用这两个方法。

    方法1 方法2
    1. 在解决方案资源万博 尤文图斯管理器中窗格中,右键单击引用

    2. 选择添加服务引用。添加服务引用对话框出现。

    3. 地址字段中,输入:http://localhost: 8001 / /

      请注意

      一定要包括/除了

    4. 名称空间字段中,输入AdditionProxy

    5. 点击好吧

    1. 输入以下命令从您的客户机应用程序目录生成AdditionProxy.cs,其中包含客户端代理代码。这个命令还生成配置文件App.configsvcutil.exe/t:code http://localhost:8001/AddMaster//out:AdditionProxy.cs /config:App.config

      请注意

      输入上面的命令在一行上,没有休息。

    2. 添加AdditionProxy.csApp.config你的客户项目

请注意

当运行自托管应用程序中,您可能会遇到的问题端口预订。使用这个工具netsh根据需要修改您的端口配置,。

使用WCF开发客户端程序界面

在启动,客户端程序连接到AdditionService提供的除了WCF服务。,而不是直接调用的方法类型安全的机制IAddOne接口,WCF客户端使用中定义的方法名称OperationContract的属性IAddOne

编译客户端程序使用微软Visual Studio通过以下几点:

  1. 开放微软Visual Studio并创建一个c#控制台应用程序(。净框架)被称为AdditionClient

  2. 将以下代码复制到生成的Program.cs在你的项目:

    WCF客户端程序

  3. 如果你不已经引用System.ServiceModel,将它添加到您的Visual Studio项目。

  4. 构建>配置管理器和变化的平台任何CPUx64

  5. 编译WCF客户端程序微软Visual Studio

  6. 从命令行运行这个程序的管理员访问。

    程序显示以下输出:

    联接通过Http连接添加服务……Conntected除了服务……addOne (1) = 2 addOne (16) = 17 addOne (2) = 3 addOne (495) = 496 addOne ([30 60 88]) = [31 61 89] addOne ([0 2;3 1]= [1 3;4 2]按任意键关闭客户端应用程序。

    按一个键的结果如下:

    关闭客户端....

提示

  • 如果你想使用WCF,最简单的方法是通过类型安全的API。

  • WCF和. net remoting不兼容在同一部署项目或组件。

  • 本例中需要客户端和服务器使用消息大小超过了WCF的违约。更改默认消息大小的信息,请参阅MSDN文章有关maxreceivedmessagesize财产

另请参阅

|||

相关的话题