如何: 创建和使用元数据组件

文章翻译 文章翻译
文章编号: 323491 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本分步指南介绍了哪些程序集的元数据和在什么情况下您可以使用它们。本文还介绍了如何使用与 nowrappedproxy 标志 Soapsuds 工具生成元数据组件。

要求

下面的列表概述了建议的硬件、 软件、 网络的基础结构和服务包,您需要:
  • visual.net Studio
  • Microsoft Internet Information Services (IIS)
本文假定您熟悉下列主题:
  • visual.net Studio
  • microsoft.net 框架
  • microsoft.net 远程处理

元数据组件是什么?

元数据的程序集是.net Framework 程序集包含唯一的元数据和类型信息。元数据的程序集是与在 COM 中,类型库类似但元数据的程序集不包含任何实现代码。

连同一个分布式客户端应用程序中,您可以部署包含足够的信息,为该客户端应用程序来创建远程代理,并使用远程代理调用实际的组件可能驻留在另一台计算机上的方法的元数据组件。

以下指南演示如何从一个简单的基于.net 的组件生成元数据组件。

创建简单的.net 框架组件

  1. 在 Visual Studio 中。NET,在 文件 菜单上单击 新建,然后单击 项目。在 项目类型 框中,单击 Visual C# 项目。在 模板 框中,单击 类库
  2. 名称 更改为 MyRemoteComp,然后单击 确定

    创建类库项目。默认情况下,是在 $ Class1.cs 中创建 类的 Class1MyRemoteComp 命名空间中。
  3. 复制并粘贴以下代码中 Class1
    public string SayHello(string sName)
    {
        return "Hi, " + sName;		
    }
    					
  4. 生成 菜单上单击 生成解决方案 以生成类库。程序集被命名为 MyRemoteComp.dll。

使用 Soapsuds 工具来生成元数据组件

此部分说明了如何使用 Soapsuds 工具 (Soapsuds.exe) 和它的 nowrappedproxy 标志创建元数据的程序集。您在前面的步骤中创建简单的程序集文件用作输入:
  1. 开始 菜单上指向 程序、 单击 Microsoft Visual Studio.net、 单击 Visual Studio.net 工具,然后单击 Visual Studio.net 命令提示符
  2. 在 Visual Studio.net 命令提示,更改到您在其中创建简单的类的库程序集的目录。默认状态下,该程序集是在 project \bin\debug 目录中。键入命令 dir,然后记下文件列表中显示的程序集名为 MyRemoteComp.dll。
  3. 根据您的程序集运行 Soapsuds 工具。若要这样做键入以下命令 (为一个命令行) 在 Visual Studio.net 命令提示符:

    -inputassemblyfile:myremotecomp soapsuds.exe
    -outputassemblyfile:myremotecomp.metaonly.dll-nowrappedproxy


    现在,您有一个名为 Myremotecomp.metaonly.dll 的第二个程序集.dll。这是元数据的程序集。
您可以使用在远程客户端开发和部署中的此元数据的程序集。当您在开发远程客户端添加一个程序集引用,此元数据而不是包含实现代码的程序集引用的程序集。如果在 Visual Studio.net 开发请按照下列步骤以添加该引用:
  1. 项目 菜单上单击 添加引用
  2. 单击 浏览,找到您的元数据程序集,然后单击 打开

    选择组件 下,将显示您的程序集。
  3. 单击 确定
现在,您可以引用,并在客户端代码中使用类。

-nowrappedproxy 替代使用

编译您的客户端,还后,您可以使用元数据组件。在这种情况下,您必须生成具有相同的名称与原始输入程序集是元数据的程序集文件。若要执行此操作运行 Soapsuds 工具在 Visual Studio.net 命令提示符后键入下列命令 (为一个命令行):

-inputassemblyfile:myremotecomp soapsuds.exe
-outputassemblyfile:metaonly/myremotecomp.dll-nowrappedproxy


此命令在目录 project \bin\debug\metaonly,创建新的元数据的程序集文件,并为新的元数据的程序集文件提供了与输入程序集文件相同的名称。它是为此新文件指定有意义的名称暂时时操纵部署之前文件, 很有帮助的。在部署新的元数据的程序集时, 请将名称更改为原来的名称。

您可以将此新的程序集部署到远程客户端的已编译对原始输入程序集。在客户端应用程序将程序集加载后,客户端查找原始程序集文件按名称,但客户端查找元数据的程序集同名的此部署配置。客户端要求只在元数据和类型包含的信息来调用这些远程方法,因此元数据的程序集已足够用于此目的在程序集文件中。

故障排除

  • 您在运行 Soapsuds.exe 命令时验证指定输入程序集文件时不会包含.dll 文件扩展名。
  • 在"参考"部分中列出的 Microsoft 开发人员网络 (MSDN) 文章所述,您可以使用缩写 Soapsuds.exe 参数。
  • 您已生成后更改输出程序集文件的名称时应小心。作为与任何的.net 框架程序集.dll 文件的名称是元数据的一部分。如果名称不同于出现在元数据中的名称加载程序集时,将发生错误。

参考

有关 Soapsuds 工具的详细信息,请访问下面的 MSDN 网站:
Soapsuds Tool (Soapsuds.exe)
有关更多的信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
323490信息: 配置.net 远程处理时远程处理客户端是 ASP.NET 应用程序或客户端由 IIS 托管的其它远程组件

属性

文章编号: 323491 - 最后修改: 2004年4月22日 - 修订: 3.4
这篇文章中的信息适用于:
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2002 专业版
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
关键字:?
kbmt kbhowtomaster KB323491 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 323491
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com