亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用 COM+ 參數化對象結構編程技術

系統 1755 0

使用 COM+ 參數化對象結構編程技術

關鍵詞: Delphi控件雜項

使用 COM+ 參數化對象結構編程技術
一、引言
????COM+ 服務技術的一個核心理念就是系統本身提供完成許多面向企業應用開發者的通用基本模組(如線程

、物件資源池管理、事務服務管理、事件服務管理等),讓系統設計人員把精力集中在企業應用本身的業務

邏輯上。
????COM+提供了許多新的服務和一致的管理運行環境,它還支援申明性編程模型(declarative programming

model),也就是說,開發人員可以按盡可能通用的方式開發元件程式,把一些細節留到配置時刻再確定。例

如,在開發一個COM+元件,它支援事務處理特性,但是我們在開發元件的時候,並不確定它是否使用事務處

理特性,而把是否支援事務處理特性留待配置時刻再作決定。有的應用可能會需要事務處理特性,而有的應

用可能並不需要,我們可以通過COM+管理程式配置元件的屬性來決定元件是否支援事務處理特性。MTS安全模

型實際上是一個典型的申明性編程技術,它把元件的安全角色資訊留到配置時刻再給出確切的定義,而非編

程時刻。COM+繼承了MTS的安全模型。
????利用COM+的服務和管理工具,開發一個COM+元件要比開發一個COM元件容易得多,因爲COM+元件實際上是

建立在COM+系統服務基礎上的應用程式,我們可以避免底層繁瑣的細節處理,如多線程的並發處理。通過

COM+系統服務,在獲得可靠性的同時,也使的元件和應用程式更趨於標準化,在更廣泛的範圍內體現元件或

者應用的多態性。
????COM+ 的推出終于有機的統一了 COM/DCOM/MTS 的編程模式,使得我們不需要區分我們編寫的是什么類型

的COM 對象,所編寫的對象既是 COM 對象也是 COM+對象;在 COM+ 中物件環境和截取(intercept) 技術都

被合併到標準的 COM代理/存根中,所以可以通過標準得 CoCreateInstance 方法來創建物件,並且通過

CreateInstance方法創建的MTS 元件同樣可以在COM+ 正常運行和完全相容。

二、參數化 COM+ 對象結構
????在COM+ 中引入了許多新的服務何功能,參數化對象結構就是其中一項功能。本功能是用來實現為COM+對

象創建提供一個字串參數,組件對象通過IObjectConstruct接口來查詢管理員配置的字串參數。參數化對象

結構的一個典型用途就是可以應用到程序中作為 ADO 的連接字串參數。
????IObjectConstruct 讓的方法或對象通過參數來控制相關對象處理功能,我們必須使用接口對象來實現此

接口,當管理員將組件對象的對象結構配置參數設置有效后,COM+ 將調用 IObjectConstruct.Construct 通

過IObjectConstructString來獲取參數化 COM+ 對象結構中的字串參數。
????IObjectConstructString 接口用來存取建立者字符串。本對象是一個Automation COM 對象,但無須通

過接口對象來實現他,COM+ 支持在調用 IObjectConstruct.Construct 時暴露此對象。
????如何為元件輸入對象結構字串。
????1、在組件管理器中選取相應的組件,右鍵彈出快捷菜單,然后點擊屬性
????2、在組件屬性對話框,點擊激活屬性頁。
????3、使能對象結構,輸入建立者字符串(例如一個 ADO 連接字串)。

三、程序實現

????實現COMPlusServer
???
????1、Import Type library->COM+ Services Type Library->Create Unit
????2、建立一個新的 ActiveX Library Project
????3、創建一個新的 MTS Data Module
????4、到 Type Library 中選取 Project->Uses->點擊右鍵選擇 Show All Type Library->選擇COM+

Services Type Library
????5、選擇 COM 的接口對象->Implements->點擊右鍵選擇 Insert Interface ->IObjectConstruct
????6、在接口中定義一個新的的方法-> GetConString
????7、到組件對象實現單元中實現以下代碼:
??private
????{ Private declarations }
????objSonStr: IObjectConstructString;
????StrDemo: WideString;

function TXXXServer.Construct(const pCtorObj: IDispatch): HResult;
begin
??pCtorObj.QueryInterface(IID_IObjectConstructString, objSonStr);
??StrDemo := objSonStr.Get_ConstructString;
end;

procedure TXXXServer.GetConString;
begin
??if trim(StrDemo) = '' then
????ShowMessage('沒有字串')
??else
????ShowMessage(StrDemo);
end;

????客戶端程序
????客戶端程序是最一般化的 Delphi 代碼:
procedure TForm1.Button1Click(Sender: TObject);
begin
??DCOMConnection1.AppServer.GetConString;
end;

?



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3376


使用 COM+ 參數化對象結構編程技術


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美videos粗暴高清性 | 欧美在线视频在线观看 | 男人午夜剧场 | 中文字幕亚洲视频 | 国产伦精品一区二区 | 国产乱子伦手机在线 | 在线观看中文字幕亚洲 | 青青热久久国产久精品秒播 | 人成精品视频三区二区一区 | 欧美激情在线观看一区二区三区 | 中文字幕亚洲综合久久2 | 天天拍夜夜添久久精品免费 | 国产亚洲视频在线观看 | 国产在线麻豆一区二区 | 97在线视| 久久精品国产一区二区小说 | 婷婷激情网站 | 欧美综合视频在线 | 欧美精品国产 | 久久久穴 | 天天摸夜夜添狠狠添2018 | 欧美大狠狠大臿蕉香蕉大视频 | 中文字幕 亚洲精品 | 久久久久久久久久福利 | 99视频免费看 | 久久香蕉国产线看观看网站 | 狠狠色丁香婷婷久久综合2021 | 四虎影视在线看 | 日本高清在线一区二区三区 | 中文字幕免费观看视频 | 九色官网 | 国产精品一级香蕉一区 | 亚洲毛片免费观看 | 色悠久久久久综合网小说 | 天天射久久 | 天天爽夜夜爽夜夜爽精品视频 | 午夜91| 成年人午夜影院 | 一a一片一级一片啪啪 | 国产91福利在线精品剧情尤物 | 日本黄色免费网址 |