新建Asp.Net注意問題及其功能介紹
新建Asp.Net是通過語言的基礎(chǔ)上而來的,就是所謂的開發(fā)環(huán)境,編制生成的代碼稱為Asp.Net代碼。Asp.Net編譯器可以從源代碼中讀取相關(guān)信息,而Asp.Net運(yùn)行庫又從元數(shù)據(jù)中獲得托管代碼的信息。
雨楓技術(shù)教程網(wǎng) 雨 楓技 術(shù) 教程 網(wǎng)雨楓技術(shù)教程網(wǎng) 眾所周知,asp.net是基于通用語言運(yùn)行庫創(chuàng)建的,也就是所謂的托管執(zhí)行環(huán)境。生成的代碼稱為托管代碼。編譯器能夠從源代碼的描述中產(chǎn)生元數(shù)據(jù)信息,而運(yùn)行庫又從元數(shù)據(jù)中獲得托管代碼的信息。而我們編寫的組件一般是在非托管環(huán)境下創(chuàng)建的,這些組件往往不包含元數(shù)據(jù)信息,那么我們?cè)趺丛谕泄艽a中使用這些元數(shù)據(jù)信息呢?
為了在托管環(huán)境中使用非托管代碼,我們首先必須手工為這些現(xiàn)有的組件產(chǎn)生元數(shù)據(jù)信息。新建Asp.Net必須有一種工具能夠產(chǎn)生元數(shù)據(jù)。能夠從某個(gè)地方獲得元數(shù)據(jù)。這個(gè)元數(shù)據(jù)的發(fā)源地就是類型庫,事實(shí)上,今天所有的組件都有一個(gè)類型庫。
這里為了說明如何產(chǎn)生元數(shù)據(jù)信息,我們不妨以Microsoft Agent組件為例進(jìn)行說明。這個(gè)組件類似于Office的小助手,它能夠完成各種豐富多彩的人性化的動(dòng)作,并且支持語音識(shí)別和語音合成。一般的操作系統(tǒng) 都默認(rèn)安裝了這個(gè)組件,新建Asp.Net用戶該不會(huì)發(fā)愁沒有這個(gè)組件吧。如果你的系統(tǒng)刪除了這個(gè)組件,你可以http://microsoft.com/msagent/downloads.htm去下載。下面開始介紹如何在asp.net中使用非托管COM組件。
首先是創(chuàng)建元數(shù)據(jù)
Microsoft Agent控件默認(rèn)是安裝在%systemroot%\msagent\目錄下,新建Asp.Net首先運(yùn)行開始菜單中Visual Studio.NET Command Prompt(命令提示)菜單項(xiàng)。在這個(gè)目錄執(zhí)行下面的命令。
tlbimp agentctl.dll /out: agentctl_proxy.dll
通過這個(gè)命令我們可以創(chuàng)建一個(gè)包含元數(shù)據(jù)信息的代理文件agentctl_proxy.dll。注意這并不是一個(gè)真正的動(dòng)態(tài)連接庫文件,而是一個(gè)裝配文件(Assembly),也就是我們非托管COM組件的代理。 #t#
也可以通過.NET框架提供的實(shí)用程序aximp.exe創(chuàng)建,命令行如下,新建Asp.Net這樣它會(huì)生成兩個(gè)文件,如下圖所示:注意AgentObjects.dll 和agentctl_proxy.dll文件是完全一樣的文件。C:\Program Files\Microsoft Visual Studio 9.0\VC>aximp %systemroot%\msagent\agentctl.dll