从 COM 组件调用 NET 组件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从 COM 组件调用 .NET 组件 升级到 Microsoft .NET Mike Gunderloy Lark Group, Inc. 2002年1月 摘要:详细说明了如何从 COM 客户端调用 Microsoft .NET 服务器。 目标 理解 COM 可调用包装的概念 创建一个可以从 Microsoft? Visual Basic? 6.0 调用的 .NET 服务器 使用 sn、regasm 和 gacutil 实用程序 编写使用 .NET 类的 Visual Basic 6.0 代码 前提条件 要彻底理解本文内容,需要满足以下条件: 熟悉 Visual Basic 编程 熟悉 COM 概念 可以使用 Visual Basic .NET 理解 .NET 的整体体系结构 理解如何在 Visual Basic .NET 中创建公共类 目录 互操作性的优势 创建供 COM 应用程序使用的 .NET 类 练习从 COM 调用 .NET 组件 Visual Basic 6.0 之后的新增功能 小结 互操作性的优势 有时,编程中的革新会使人不得不放弃以前的所有工作。举一个很极端的例子,假设您已有多年 Visual Basic 编程经验,象许多开发人员一样,您当时已建立起一个颇具规模的代码库,而且,由于您听从了各种语言专家的建议,代码都是“组件化的”。也就是说,通过使用 COM(组件对象模型,即以前的 Microsoft? ActiveX?)服务器,已将应用程序分成了可调用的功能块。当然,您还很有可能获得了其他开发人员或其他公司对组件(如 ActiveX 控件)的可观投资。 但是,如果您决定彻底改变,转到其他操作系统上进行开发,会怎样呢?这时,您对 COM 的全部投资将变得一文不值;而且您无法使用任何现有的代码,而不得不从头学习如何在新的平台上进行开发。毫无疑问,这一切会使您的工作效率大大降低。 幸运的是,从 COM 转换到 .NET 不会对您的工作效率造成如此巨大的影响。之所以能够从 COM 开发轻松地转为 .NET 开发,而毫不损失代码库或工作效率,得益于两个关键概念: .NET 组件可以调用 COM 组件。 COM 组件可以调用 .NET 组件。 这种双向的互操作性是从 COM 迁移到 .NET 的关键。在了解 .NET 的复杂性的同时,您可以继续使用 COM 组件。在很多情况下都能体现出这种互操作性的好处: 转到 .NET 不可能一蹴而就。因为学习 .NET 的编程概念和实现方案需要一些时间,所以您可能发现尽管您、您的同事和供应商学得很快,您仍然需要继续使用 COM 代码。 可以迁移到 .NET 中的代码不可能一次全部迁移完成,您需要分别迁移各个组件并进行测试。 也许您所使用的第三方 COM 组件无法转换到 .NET,而供应商还没有发行 .NET 版本。 虽然 Visual Basic 6.0 代码将迁移到 .NET,但效果不理想。由于实现方案或语言特性,可能有一些组件无法迁移到 .NET。 本文介绍了从 .COM 客户端调用 .NET 服务器的详细信息。在本系列的另一篇文章“从 .NET 调用 COM 组件”中,您将学习另一个方向的调用,即从 .NET 客户端调用 COM 服务器。 创建可供 COM 应用程序使用的 .NET 类 尽管 COM 客户端可以调用由 .NET 服务器在公共类中公开的代码,但是 COM 客户端不能直接访问 .NET 代码。为了能从 COM 客户端使用 .NET 代码,需要创建一个称为 COM 可调用包装 (CCW) 的代理。本节将介绍 CCW 的体系结构,以及创建和部署供 COM 客户端使用的 .NET 类所需的必要步骤。 COM 可调用包装 在 .NET 公共语言运行时 (CLR) 中运行的代码称为“管理代码”。它可以访问 CLR 提供的服务,如跨语言集成、安全性和版本控制以及垃圾回收。在 CLR 外运行的代码称为“非管理代码”。由于在 CLR 出现之前就已经设计出了 COM,而且 COM 代码不在 CLR 提供的基础结构中运行,所以它无法使用 CLR 的任何服务。根据定义,所有 COM 组件都是非管理代码。 管理代码组件不仅依靠 CLR,还需要能与它们进行交互操作的组件,以便依靠 CLR。由于 COM 组件不在 CLR 内运行,所以它们无法直接调用管理代码组件。非管理代码不能到达 CLR,所以无法直接调用管理组件。 解决这个难题的办法是使用代理。通俗的讲,代理是一种接收并修改一个组件的命令、再将这些命令转发给另一个组件的软件。在从非管理代码中调用管理代码的过程中所用到的特殊类型的代理称为 COM 可调用包装,即 CCW。图 1 说明了 CCW 如何

文档评论(0)

189****6140 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档