續接:N-Tiers開發方式(COM+元件的註冊、修改)

在元件安裝完成後,接下來的工作就是要如何呼叫使用我們寫好的元件了。我們假設我們寫好的元件的名稱如下:

Package:KDMO1000
Project:PDMOMenu
Class:
CDMOMenu1(無Transaction)
CDMOMenu2(有Transaction)
假設CDMOMenu1中有一個Function是GetNodeName,傳入參數NodeId(整數),傳回NodeName(字串)
GetNodeName(Byval NodeId as Integer) As String

Late Binding:

我这边所提的使用方式,是使用Late Binding的呼叫方式。也就是说,不会预先将组件注册到您的ASP.NET的专案中,或者是您的VB.NET的项目中,当系统运作的时候,在动态的从Server把该对象Bind上来使用。这样做的缺点是,您无法透过obj.就弹出组件内的属性方法让您选择,使用属性方法的时候都必须自己Keyin进去。但是优点则是,当您的组件有做了变更,您不必去一个一个的项目里重新的Reference您的组件;另外就是不论您写的是ASP、ASP.NET、VB、VB.NET,您呼叫组件的方式是一致的。

呼叫组件:

呼叫组件的方式如下:

ASP:

Set obj = CreateObject("PDMOMenu.CDMOMenu1") 
NodeId = 2 
NodeName = obj.GetNodeName(NodeId)

VB:

Dim obj as Object 
Set obj = CreateObject("PDMOMenu.CDMOMenu1") 
Dim NodeId as Integer 
NodeId = 2 
Dim NodeName as String 
NodeName = obj.GetNodeName(NodeId)

ASP.NET/VB.NET

Dim NodeId As Integer = 2 
Dim obj As Object = CreateObject("PDMOMenu.CDMOMenu1") 
Try 
    Dim NodeName As String = obj.GetNodeName(NodeId) 
Catch ex As Exception 
    Me.lblErrMsg.Text=ex.Message.toString() 
Finally 
    '資源回收 
    obj.Dispose() 
    obj = Nothing 
End Try

NET呼叫组件需自行释放组件:

从以上的这些程序代码,可以发现,呼叫组件的过程几乎相同,使用.NET撰写时,呼叫的方式更可以简洁。

当组件被呼叫执行后,可以在【组件服务】中找到该Package中的组件被呼叫而转起来。如果是用ASP,VB6呼叫组件,可以发现当组件呼叫完成后,组件的转动会停下来,呼叫中的组件数字也会归零。但次使用.NET呼叫组件,如果没有撰写【Try..Catch..Finally..End Try】并且把【obj.Dispose()】、【obj = Nothing】放在Finally里,那么【组件服务】中的组件将会转不停。这是因为ASP,VB6再程序执行完毕时,会自动的做【资源回收】的动作;但是在.NET中【资源回收】必须经由程序设计者手动的执行,否则需当系统资源不足时启动GC才能够真正的回收。

转载于:https://www.cnblogs.com/topcat/archive/2008/06/08/1215931.html

N-Tiers开发方式(ASP/ASP.NET、VB6/VB.NET呼叫使用COM+组件)相关推荐

  1. N-Tiers開發方式(ASP/ASP.NET、VB6/VB.NET呼叫使用COM+元件)

    续接:N-Tiers开发方式(COM+组件的注册.修改) 在组件安装完成后,接下来的工作就是要如何呼叫使用我们写好的组件了.我们假设我们写好的组件的名称如下: Package:KDMO1000 Pro ...

  2. 主流网站开发语言 ASP ASP.NET JSP PHP CGI

    主流网站开发语言之ASP: ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和Visual BASIC类似,可以像SSI(Server Side Include)那样把后台脚本代码 ...

  3. 编程语言书籍下载(ASP/ASP.net类)

    编程语言书籍下载(ASP/ASP.net类) XML与ASP网站实作大全 ASP经典百例 ASP.NET 1.1专业开发 ASP.NET完全手册 ASP.NET 技术参考 ASP.netdatabas ...

  4. python和vb的代码可以通用吗-VB6+Python混合编程(COM组件)(转)

    VB6+Python混合编程(COM组件) 0.2572018.05.10 16:01:23字数 553阅读 3725 Python的方便不用说,VB6做GUI的简单程度更不用说.二者混合编程的需求一 ...

  5. php程序转net,asp,asp.net,php,jsp下的301转向代码,整站重定向

    asp,asp.net,php,jsp下的301转向代码 使用.htaccess文件来进行301重定向. 如果空间不支持.htaccess文件,那么我们还可以通过php/asp代码来进行301重定向. ...

  6. 排班源码,排班软件源码,排班系统源码,java,php,asp,asp.net,c#,python通用

    先上最后成品图: 可以按月按周进行排班 支持拖拉排班,效率十分高效 开工,准备物料: daypilot-all.min.js绿色版 我语言用的是php,因为是独立原生版本,代码看起来很简洁高效,开发起 ...

  7. 使用Jscript[ASP,ASP.NET]开发本地QQ农场牧场的可行性

    目前,网上流行的QQ本地农场,本地开心农场,全部是PHP开发,有个PWSNS是.net开发,但是不开源,对于其他平台的程序来说,只能看着PHP程序使用,自己就没有办法吗? 那么多ASP,ASP.NET ...

  8. html页面如何跳转到asp,asp点击按钮跳转页面 ASP中按钮的点击触发网页跳转

    ASP中按钮的点击触发网页跳转 asp中要实现点击一个按钮转到另一个网页有几种方法就是按下一个BUTTON,转到另一个网页,一共有哪些方式实现? 我只知道ona标签,背景图按钮,直接点击跳转链接hre ...

  9. VB6.0中如何设定COM组件和ActiveX控件的CLSID值

    http://ajxfxb.blog.163.com/blog/static/56675086200911181118562/ VB中如何设定COM组件和ActiveX控件的CLSID值 2009-1 ...

最新文章

  1. 在WinDBG中查看调用栈的命令
  2. 服务器搭建tomcat,通过url访问视频
  3. 2021年热门临床研究盘点
  4. [TCP/IP] SSL的通讯原理
  5. 开年赢好运!程序员加油包等你免费拿
  6. JAVA编程规范-常量定义
  7. 第十至十二章 算法分析--高阶数据结构
  8. QA:Visual C# 2008 compiler could not be created.
  9. CentOS英文环境下使用ibus输入法
  10. RHEL 5基础篇—管理系统计划任务
  11. USB转TTL、USB转串口、USB转RS232的区别
  12. 关于seo优化实用篇
  13. [python-opencv]滑动验证码打码
  14. glew库安装和初始化
  15. 【Vscode - Bug】-- 过程试图写入的管道不存在
  16. [转帖]揭秘太湖之光
  17. 生活随记-参观一大会址须知
  18. 服务器虚拟机6的安装教程,VMware vCenter 6.7 安装过程(图文教程)
  19. 俄罗斯一家庭与世隔绝40年 不知有二战(图)
  20. [STL]set存储pair并自定义排序

热门文章

  1. 逆向初学者做题记录3.28
  2. vertica数据库监控
  3. anaconda 和Tensorflow 2 安装
  4. 你应该知道的一些微信技巧
  5. 利用PHP GD库生成位图
  6. Docker的深入浅出(入门新手篇)
  7. 2021新宁二中高考喜报成绩查询,新宁二中举行2021年高考倒计时100天誓师大会
  8. 从手机里上传文件到云服务器,手机如何上传文件到云服务器
  9. DxmCms自动过滤内容中的广告法违禁词功能
  10. antv g6多次渲染问题解决