• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

续接: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 
Using obj As Object = CreateObject("PDMOMenu.CDMOMenu1") 
    Try 
        Dim NodeName As String = obj.GetNodeName(NodeId) 
    Catch ex As Exception 
        Me.lblErrMsg.Text=ex.Message.toString() 
    End Try
End Using

 

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

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

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap