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

來源:互聯網
上載者:User

續接: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 TryEnd Using

 

.NET呼叫組件需自行釋放組件:

從以上的這些程式碼,可以發現,呼叫組件的過程幾乎相同,使用.NET撰寫時,呼叫的方式更可以簡潔。

當組件被呼叫執行後,可以在【元件服務】中找到該Package中的組件被呼叫而轉起來。如果是用ASP,VB6呼叫組件,可以發現當組件呼叫完成後,組件的轉動會停下來,呼叫中的組件數字也會歸零。但次使用.NET呼叫組件,如果沒有撰寫【Try..Catch..Finally..End Try】並且把【obj.Dispose()】、【obj = Nothing】放在Finally裡,那麼【元件服務】中的組件將會轉不停。這是因為ASP,VB6再程式執行完畢時,會自動的做【資源回收】的動作;但是在.NET中【資源回收】必須經由程式設計者手動的執行,否則需當系統資源不足時啟動GC才能夠真正的回收。因此,.NET裡面最好使用Using來宣告使用該Object。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.