網域查詢: www.
返回首頁

在ASP.NET中使用非托管COM組件

時間:2010-02-17 02:36來源: 作者: 點擊:
眾所周知,ASP.NET是基于通用語言運行庫創建的,也就是所謂的托管執行環境。生成的代碼稱為托管代碼。編譯器能夠從源代碼的描述中產生元數據信息,而運行庫又從元數據中獲得托管
    眾所周知,ASP.NET是基于通用語言運行庫創建的,也就是所謂的托管執行環境。生成的代碼稱為托管代碼。編譯器能夠從源代碼的描述中產生元數據信息,而運行庫又從元數據中獲得托管代碼的信息。而我們編寫的組件一般是在非托管環境下創建的,這些組件往往不包含元數據信息,那麼我們怎麼在托管代碼中使用這些元數據信息呢?


  為了在托管環境中使用非托管代碼,我們首先必須手工為這些現有的組件產生元數據信息 。必須有一種工具能夠產生元數據。能夠從某個地方獲得元數據。這個元數據的發源地就是類型庫,事實上,今天所有的組件都有一個類型庫。


  這里為了說明如何產生元數據信息,我們不妨以Microsoft Agent組件為例進行說明。這個組件類似于Office的小助手,它能夠完成各種豐富多彩的人性化的動作,並且支持語音識別和語音合成。一般的操作系統都默認安裝了這個組件,用戶該不會發愁沒有這個組件吧。如果你的系統刪除了這個組件,你可以到http://microsoft.com/msagent/downloads.htm.去下載。


  1、首先是創建元數據


  Microsoft Agent控件默認是安裝在%systemroot%\msagent\目錄下,我們可以首先從開始菜單中Visual Studio.NET Command Prompt菜單項定位到這個目錄。在這個目錄執行下面的命令。


  tlbimp agentctl.dll /out: agentctl_proxy.dll
  通過這個命令我們可以創建一個包含元數據信息的代理文件agentctl_proxy.dll。注意這並不是一個真正的動態連接庫文件,而是一個裝配文件(Assembly),也就是我們非托管COM組件的代理。


  也可以通過.NET框架提供的實用程序aximp.exe創建,命令行如下,這樣它會生成兩個文件,如下圖所示︰注意AgentObjects.dll 和agentctl_proxy.dll文件是完全一樣的文件。


  aximp %systemroot%\msagent\agentctl.dll


<p align=center><htmChina:Image id=Image1|1></htmChina></p>
  2、安裝到ASP.NET中


  把元數據文件安裝到ASP.NET 環境中有兩種辦法︰


  一是把文件復制到應用程序的BIN目錄。


  二是把它復制到ASP.NET目錄。


  第二種方法有一個缺陷,你必須在每一個使用組件的ASP.NET頁面插入一個@Assembly語句。而保存到Bin目錄則可以避免這一點。assembly將會被加載到應用程序的所有ASP.NET頁面。因此我們最好還是把它放在bin目錄。

頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
最新評論 查看所有評論
發表評論 查看所有評論
請自覺遵守互聯網相關的政策法規,嚴禁發佈色情、暴力、反動的言論。
評價:
表情:
用戶名: 密碼: 驗證碼:
推薦內容