在ASP.NET中使用.NET元件 (轉)
在ASP.NET中使用.NET元件 (轉)[@more@]在中使用.NET
點選:2011
上面的程式碼告訴我們在ASP當中需要使用Server的CreateObject方法來建立一個類例項。上面的程式碼中,首先宣告瞭變數fso,之後我們將變數fso賦於FileSystemObject的物件(FileSystemObject物件可以在Scripting這個庫中找到)。如果想要上面的ASP程式碼得以正常執行,我們必須確定相關的DLL已經被並且註冊到。當VBScript執行庫被安裝的時候,FileSystemObject物件是會被自動註冊的。但是如果你想使用第三方開發的元件或者使用你自己建立的元件,你就需要小心安裝並且註冊你的元件了。
接下來讓我們來看看,假設在中也存在FileSystemObject這個物件的話,我們應當如何來例項化它:
使用 :
使用:
正如你所看到的一樣,在ASP.NET中例項化類是同ASP有所不同的。其中重要的不同點有:
在ASP.NET中已經不再可以使用VBScript語言了,而是被功能強大的VB.NET所代替了
在ASP.NET當中,在你宣告一個變數的同時,可以指定它的型別並且初始化這個變數
為了引用一個類,需要使用這樣的表示方法:名稱空間[.子名稱空間].類。
在上面的例子當中,我們引用了FileSystemObject這個類,而FileSystemObject這個類可以在名稱空間Scripting中找到。需要注意的是,上面的名稱空間實際上只是我們假設的一個名稱空間,它並不存在於.NET的架構當中,所以上面的程式碼實際上是無法執行的。換句話來說就是,我們需要自己建立Scripting這個名稱空間並且在這個名稱空間當中定義FileSystemObject這個類。
什麼是名稱空間?
在前面的章節當中我們已經使用過“名稱空間”這個詞。利用名稱空間你可以將多個類組成在邏輯上相關的一些單元。通常,你會將一些提供相似功能或者具有相似狀態的類聚合在一起。比如名稱空間System.IO的一個例項就包含了那些用來處理輸入和輸出操作(比如:讀、寫、刪除檔案)的類。值得注意的是,名稱空間當中的類要具有類似的功能或者類似的狀態並不是一個必須的要求。你可以按照任何規則自由的組織你自己的名稱空間,甚至可以沒有任何規則。
引用.NET元件
應當注意到了,我們給出的第一個ASP.NET的例子只是用來教學演示的---它是無法執行的。現在讓我們來看一個能夠正常執行的實際例子:
使用VB.NET建立Message物件
使用C#建立Message物件
指令@Assembly表示將一個集合引用到當前的頁面,從而使得所有在集合當中定義的類、介面、結構可以在當前頁面自由的被使用。在我們上面給出的例子當中,我們繫結了System.Messaging.dll這個集合。在這個集合當中包含了System.Messaging這個名稱空間,System.Messaging名稱空間提供了存取.NET架構訊息的功能。我們建立了Message類的一個例項,從而可以利用它存取訊息佇列當中的訊息了。如果我們需要在一個程式碼繫結的檔案中建立Message類,需要這樣做:
使用VB.NET在程式碼繫結檔案中建立Message物件
Public Class myPage
Inherits System..UI.Page
Dim myDir As System.Messaging.Message = New System.Messaging.Message()
End Class
使用C#在程式碼繫結檔案中建立Message物件
public class myPage : System.Web.UI.Page {
System.Messaging.Message myDir = new System.Messaging.Message();
}
需要注意的是,如果我們想要編譯這個類,我們需要在編譯的時候通知我們需要引用System.Messaging.dll以及System.Web.dll這兩個檔案。假設我們將上面的類儲存成為一個檔案(mypage.vb或者mypage.cs),之後我們需要這樣來編譯它:
編譯程式碼繫結的類
vbc mypage.vb /r:System.Messaging.dll /r:System.Web.dll
csc mypage.cs /r:System.Messaging.dll /r:System.Web.dll
傳遞給編譯器的引數“/r:System.Messaging.dll”和“/r:System.Web.dll”同一個在Web Form上使用的指令@Assembly起到的作用是相同的。
什麼是集合?
一個集合是一組具有相似功能的邏輯單元的組合。他是基礎的,可以自描述的單元,具有版本控制,可重用,許可控制的屬性。它包含那些用來表現所有指定版本需求,安全標示符和其他資訊的集合名單。
引入名稱空間
我們已經注意到了,無論什麼時候我們引用Message物件,我們都需要提供完整的名稱空間路徑(也叫做完全限定的類名稱)。不難想象,時間長之後,這將會帶來令人厭煩和不必要的臃腫程式碼。幸運的是,我們可以在一個頁面定義一個名稱空間的路徑,從而可以節約一些無謂的敲鍵盤的時間。
使用VB.NET引入一個集合
使用C#引入一個集合
在我們的程式碼繫結類中則應當這樣書寫:
使用VB.NET在程式碼繫結檔案中引入一個集合
Imports System.Web.UI
Imports System.Messaging
Public Class myPage
Inherits Page
Dim myDir As Message = New Message()
End Class
使用C#在程式碼繫結檔案中引入一個集合
using System.Web.UI;
using System.Messaging;
public class myPage : Page {
Message myDir = new Message();
}
透過指令@Import(同樣可以透過Imports或者using語句),我們可以指定一個名稱空間的路徑。這樣,我們在引用一個類的時候,就不必使用完全限定的名稱空間路徑了。注意:如果在System.Web.UI和System.Messaging這兩個名稱空間中都有Message這個類的話,我們就必須使用完全限定的類名稱了。
清楚的知道引入的名稱空間能做什麼和不能做什麼是非常重要的。它不僅僅是節約了程式設計師的敲擊鍵盤的時間,更重要的是帶來了程式程式碼的良好的可讀性。需要明白的是,真正正式將名稱空間連入到頁面的指令是:@Assembly或者使用引數/r進行編譯。
透過配置檔案自動控制將集合連入到一個web form並不是只有使用@Assembly指令一個方式,集合也可以在一個application當中自動的被引入某個頁面。這樣的集合不需要指令@Assembly。我們可以在配置檔案config.web中使用來自動引入集合。
自動的在配置檔案當中引入集合
這個星號“*”通知ASP.NET自動引入在“應用程式的私有集合緩衝區”中的每一個集合。透過元素,你可以引入任何的名稱空間在application作用域之內。
什麼是應用程式的私有集合緩衝區?
.NET的文件中是這樣定義應用程式的私有集合緩衝區的:應用程式的私有集合緩衝區被看作是位於應用程式下的子目錄bin以及.NET構架的安裝目錄。然而透過我的測試,只有bin目錄才被當作應用程式的私有集合緩衝區,也就是說只有這個目錄才是星號“*”的作用域。
注意:在元素中的星號“*”僅僅自動連入那些位於應用程式子目錄bin中的集合!
透過查閱.NET架構安裝的預設配置檔案:config.web。我們可以知道,他自動的引入瞭如下的集合:
mrlib
System
System.Data
System.Diagnostics
System.Drawing
System.Net
System.Text.RegularExpressions
System.Web
System.Web.Services
System.
System.Xml.Serialization
.Comservices
*
你可以自己看看預設的config.web檔案,也好確認一下。下面的名稱空間也是自動引入的:
Microsoft.VisualBasic
System
System.Collections
System.Text
System.Text.RegularExpressions
System.Web
System.Web.Caching
System.Web.SessionState
System.Web.Security
System.Web.UI
System.Web.UI.WebControls
System.Web.UI.HtmlControls
點選:2011
很多人在 @Import 和 @Assembly 頁面標識的時候感到困惑,本文將為你解開這些疑問,告訴你如何來使用.NET的元件。
和ASP中的類相比較有什麼改變?
如果你以前曾經開發過ASP,那你應當是非常熟悉下面的一段程式碼了:
<BR>Dim <BR>Set fso = Server.Create("Scripting.FileSystemObject")<BR>
上面的程式碼告訴我們在ASP當中需要使用Server的CreateObject方法來建立一個類例項。上面的程式碼中,首先宣告瞭變數fso,之後我們將變數fso賦於FileSystemObject的物件(FileSystemObject物件可以在Scripting這個庫中找到)。如果想要上面的ASP程式碼得以正常執行,我們必須確定相關的DLL已經被並且註冊到。當VBScript執行庫被安裝的時候,FileSystemObject物件是會被自動註冊的。但是如果你想使用第三方開發的元件或者使用你自己建立的元件,你就需要小心安裝並且註冊你的元件了。
接下來讓我們來看看,假設在中也存在FileSystemObject這個物件的話,我們應當如何來例項化它:
使用 :
<BR>Dim fso As Scripting.FileSystemObject = New Scripting.FileSystemObject()<BR>
使用:
正如你所看到的一樣,在ASP.NET中例項化類是同ASP有所不同的。其中重要的不同點有:
在ASP.NET中已經不再可以使用VBScript語言了,而是被功能強大的VB.NET所代替了
在ASP.NET當中,在你宣告一個變數的同時,可以指定它的型別並且初始化這個變數
為了引用一個類,需要使用這樣的表示方法:名稱空間[.子名稱空間].類。
在上面的例子當中,我們引用了FileSystemObject這個類,而FileSystemObject這個類可以在名稱空間Scripting中找到。需要注意的是,上面的名稱空間實際上只是我們假設的一個名稱空間,它並不存在於.NET的架構當中,所以上面的程式碼實際上是無法執行的。換句話來說就是,我們需要自己建立Scripting這個名稱空間並且在這個名稱空間當中定義FileSystemObject這個類。
什麼是名稱空間?
在前面的章節當中我們已經使用過“名稱空間”這個詞。利用名稱空間你可以將多個類組成在邏輯上相關的一些單元。通常,你會將一些提供相似功能或者具有相似狀態的類聚合在一起。比如名稱空間System.IO的一個例項就包含了那些用來處理輸入和輸出操作(比如:讀、寫、刪除檔案)的類。值得注意的是,名稱空間當中的類要具有類似的功能或者類似的狀態並不是一個必須的要求。你可以按照任何規則自由的組織你自己的名稱空間,甚至可以沒有任何規則。
引用.NET元件
應當注意到了,我們給出的第一個ASP.NET的例子只是用來教學演示的---它是無法執行的。現在讓我們來看一個能夠正常執行的實際例子:
使用VB.NET建立Message物件
<BR>Dim myDir As System.Messaging.Message = New System.Messaging.Message()<BR>
使用C#建立Message物件
指令@Assembly表示將一個集合引用到當前的頁面,從而使得所有在集合當中定義的類、介面、結構可以在當前頁面自由的被使用。在我們上面給出的例子當中,我們繫結了System.Messaging.dll這個集合。在這個集合當中包含了System.Messaging這個名稱空間,System.Messaging名稱空間提供了存取.NET架構訊息的功能。我們建立了Message類的一個例項,從而可以利用它存取訊息佇列當中的訊息了。如果我們需要在一個程式碼繫結的檔案中建立Message類,需要這樣做:
使用VB.NET在程式碼繫結檔案中建立Message物件
Public Class myPage
Inherits System..UI.Page
Dim myDir As System.Messaging.Message = New System.Messaging.Message()
End Class
使用C#在程式碼繫結檔案中建立Message物件
public class myPage : System.Web.UI.Page {
System.Messaging.Message myDir = new System.Messaging.Message();
}
需要注意的是,如果我們想要編譯這個類,我們需要在編譯的時候通知我們需要引用System.Messaging.dll以及System.Web.dll這兩個檔案。假設我們將上面的類儲存成為一個檔案(mypage.vb或者mypage.cs),之後我們需要這樣來編譯它:
編譯程式碼繫結的類
vbc mypage.vb /r:System.Messaging.dll /r:System.Web.dll
csc mypage.cs /r:System.Messaging.dll /r:System.Web.dll
傳遞給編譯器的引數“/r:System.Messaging.dll”和“/r:System.Web.dll”同一個在Web Form上使用的指令@Assembly起到的作用是相同的。
什麼是集合?
一個集合是一組具有相似功能的邏輯單元的組合。他是基礎的,可以自描述的單元,具有版本控制,可重用,許可控制的屬性。它包含那些用來表現所有指定版本需求,安全標示符和其他資訊的集合名單。
引入名稱空間
我們已經注意到了,無論什麼時候我們引用Message物件,我們都需要提供完整的名稱空間路徑(也叫做完全限定的類名稱)。不難想象,時間長之後,這將會帶來令人厭煩和不必要的臃腫程式碼。幸運的是,我們可以在一個頁面定義一個名稱空間的路徑,從而可以節約一些無謂的敲鍵盤的時間。
使用VB.NET引入一個集合
<BR>Dim myDir As Message = New Message()<BR>
使用C#引入一個集合
在我們的程式碼繫結類中則應當這樣書寫:
使用VB.NET在程式碼繫結檔案中引入一個集合
Imports System.Web.UI
Imports System.Messaging
Public Class myPage
Inherits Page
Dim myDir As Message = New Message()
End Class
使用C#在程式碼繫結檔案中引入一個集合
using System.Web.UI;
using System.Messaging;
public class myPage : Page {
Message myDir = new Message();
}
透過指令@Import(同樣可以透過Imports或者using語句),我們可以指定一個名稱空間的路徑。這樣,我們在引用一個類的時候,就不必使用完全限定的名稱空間路徑了。注意:如果在System.Web.UI和System.Messaging這兩個名稱空間中都有Message這個類的話,我們就必須使用完全限定的類名稱了。
清楚的知道引入的名稱空間能做什麼和不能做什麼是非常重要的。它不僅僅是節約了程式設計師的敲擊鍵盤的時間,更重要的是帶來了程式程式碼的良好的可讀性。需要明白的是,真正正式將名稱空間連入到頁面的指令是:@Assembly或者使用引數/r進行編譯。
透過配置檔案自動控制將集合連入到一個web form並不是只有使用@Assembly指令一個方式,集合也可以在一個application當中自動的被引入某個頁面。這樣的集合不需要指令@Assembly。我們可以在配置檔案config.web中使用
自動的在配置檔案當中引入集合
這個星號“*”通知ASP.NET自動引入在“應用程式的私有集合緩衝區”中的每一個集合。透過
什麼是應用程式的私有集合緩衝區?
.NET的文件中是這樣定義應用程式的私有集合緩衝區的:應用程式的私有集合緩衝區被看作是位於應用程式下的子目錄bin以及.NET構架的安裝目錄。然而透過我的測試,只有bin目錄才被當作應用程式的私有集合緩衝區,也就是說只有這個目錄才是星號“*”的作用域。
注意:在
透過查閱.NET架構安裝的預設配置檔案:config.web。我們可以知道,他自動的引入瞭如下的集合:
mrlib
System
System.Data
System.Diagnostics
System.Drawing
System.Net
System.Text.RegularExpressions
System.Web
System.Web.Services
System.
System.Xml.Serialization
.Comservices
*
你可以自己看看預設的config.web檔案,也好確認一下。下面的名稱空間也是自動引入的:
Microsoft.VisualBasic
System
System.Collections
System.Text
System.Text.RegularExpressions
System.Web
System.Web.Caching
System.Web.SessionState
System.Web.Security
System.Web.UI
System.Web.UI.WebControls
System.Web.UI.HtmlControls
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989601/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在asp.net handler 中 使用 sessionASP.NETSession
- 玩轉ASP.NET Core中的日誌元件ASP.NET元件
- 在ASP.NET Core 中使用 .NET Aspire 訊息傳遞元件ASP.NET元件
- 在ASP.NET中使用Microsoft Word文件 (轉)ASP.NETROS
- 在VB.Net中建立使用控制元件陣列 (轉)控制元件陣列
- 【轉】在ASP.NET MVC中,使用Bundle來打包壓縮js和cssASP.NETMVCJSCSS
- jwt-在asp.net core中的使用jwtJWTASP.NET
- ASP.NET中,動態載入使用者控制元件ASP.NET控制元件
- 【Dflying Chen 】在ASP.NET AJAX中應用程式:使用者個性化元件ProfileServiceASP.NET元件
- 在Asp.Net 中從sqlserver檢索(retrieve)圖片 (轉)ASP.NETSQLServer
- 在ASP.NET中實現多檔案上傳 (轉)ASP.NET
- 使用ASP.NET加密口令 (轉)ASP.NET加密
- 解決Asp.net中翻頁問題的自定義使用者控制元件 (轉)ASP.NET控制元件
- 在 ASP.NET Core 專案中使用 npm 管理你的前端元件包ASP.NETNPM前端元件
- 在 ASP.NET 的 Web.config 檔案中註冊使用者控制元件ASP.NETWeb控制元件
- ASP.NET驗證控制元件的使用ASP.NET控制元件
- 在ASP.NET中物件導向的程式設計思想 (轉)ASP.NET物件程式設計
- 在ASP.NET中,向資料庫批次插入資料 (轉)ASP.NET資料庫
- 建立ASP.NET WEB自定義控制元件(轉)ASP.NETWeb控制元件
- ASP.NET驗證控制元件祥解 (轉)ASP.NET控制元件
- ASP.NET結合COM元件傳送Email (轉)ASP.NET元件AI
- 自定義asp.net控制元件分析 (一) (轉)ASP.NET控制元件
- 自定義asp.net控制元件分析(二) (轉)ASP.NET控制元件
- 在ASP.NET Core中用HttpClient(六)——ASP.NET Core中使用HttpClientFactoryASP.NETHTTPclient
- 【轉載】asp.net動態載入ascx使用者控制元件ASP.NET控制元件
- 在 ASP.NET Core 中禁用HTTPSASP.NETHTTP
- 在ASP.NET中防止注入攻擊ASP.NET
- asp.net(VB.net)中儲存過程的使用方法 (轉)ASP.NET儲存過程
- 開發asp.net自定義控制元件(asp.net學習筆記三) (轉)ASP.NET控制元件筆記
- 開發asp.net自定義控制元件(asp.net學習筆記四) (轉)ASP.NET控制元件筆記
- 開發asp.net自定義控制元件(asp.net學習筆記五) (轉)ASP.NET控制元件筆記
- asp.net 呼叫 excel 元件ASP.NETExcel元件
- 在ASP.NET Core中使用ViewComponentASP.NETView
- ASP.NET Core視覺化日誌元件使用ASP.NET視覺化元件
- ASP.NET Core知識之RabbitMQ元件使用(二)ASP.NETMQ元件
- asp.net 2.0揭祕:使用Rich控制元件ASP.NET控制元件
- comet在asp.net中的實現ASP.NET
- 【dinghao】在Asp.net中呼叫非同步方法--使用訊號量ASP.NET非同步