亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

在ASP.NET中使用.NET組件

2019-11-18 20:48:00
字體:
來源:轉載
供稿:網友
很多人在 @Import 和 @Assembly 頁面標識的時候感到困惑,本文將為你解開這些疑問,告訴你如何來使用.NET的組件

asp中的類相比較有什么改變?

如果你以前曾經開發過ASP程序,那你應當是非常熟悉下面的一段代碼了:

<script runat="server" language="VBScript">
Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")
</script>

上面的代碼告訴我們在ASP當中需要使用Server對象的CreateObject方法來建立一個類實例。上面的代碼中,首先聲明了變量fso,之后我們將變量fso賦于FileSystemObject的對象(FileSystemObject對象可以在Scripting這個庫中找到)。如果想要上面的ASP代碼得以正常運行,我們必須確定相關的DLL文件已經被安裝并且注冊到服務器。當VBScript運行庫被安裝的時候,FileSystemObject對象是會被自動注冊的。但是如果你想使用第三方開發的組件或者使用你自己創建的組件,你就需要小心安裝并且注冊你的組件了。
接下來讓我們來看看,假設在asp.net中也存在FileSystemObject這個對象的話,我們應當如何來實例化它:

使用VB.NET :
<script runat="server" language="VB">
Dim fso As Scripting.FileSystemObject = New Scripting.FileSystemObject()
</script>

使用C#:
<script runat="server" language="c#">
Scripting.FileSystemObject fso = new Scripting.FileSystemObject();
</script>


正如你所看到的一樣,在ASP.NET中實例化類是同ASP有所不同的。其中重要的不同點有:

在ASP.NET中已經不再可以使用VBScript語言了,而是被功能強大的VB.NET所代替了
在ASP.NET當中,在你聲明一個變量的同時,可以指定它的類型并且初始化這個變量
為了引用一個類,需要使用這樣的表示方法:名稱空間[.子名稱空間].類。
在上面的例子當中,我們引用了FileSystemObject這個類,而FileSystemObject這個類可以在名稱空間Scripting中找到。需要注意的是,上面的名稱空間實際上只是我們假設的一個名稱空間,它并不存在于.NET的架構當中,所以上面的代碼實際上是無法運行的。換句話來說就是,我們需要自己建立Scripting這個名稱空間并且在這個名稱空間當中定義FileSystemObject這個類。

什么是名稱空間?

在前面的章節當中我們已經使用過“名稱空間”這個詞。利用名稱空間你可以將多個類組成在邏輯上相關的一些單元。通常,你會將一些提供相似功能或者具有相似狀態的類聚合在一起。比如名稱空間System.IO的一個實例就包含了那些用來處理輸入和輸出操作(比如:讀、寫、刪除文件)的類。值得注意的是,名稱空間當中的類要具有類似的功能或者類似的狀態并不是一個必須的要求。你可以按照任何規則自由的組織你自己的名稱空間,甚至可以沒有任何規則。

引用.NET組件

應當注意到了,我們給出的第一個ASP.NET的例子只是用來教學演示的---它是無法運行的。現在讓我們來看一個能夠正常運行的實際例子:

使用VB.NET建立Message對象
<%@ Assembly Name="System.Messaging.dll" %>
<script runat="server" language="VB">
Dim myDir As System.Messaging.Message = New System.Messaging.Message()
</script>


使用C#建立Message對象
<%@ Assembly Name="System.Messaging.dll" %>
<script runat="server" language="C#">
System.Messaging.Message myDir = new System.Messaging.Message();
</script>

指令@Assembly表示將一個集合引用到當前的頁面,從而使得所有在集合當中定義的類、界面、結構可以在當前頁面自由的被使用。在我們上面給出的例子當中,我們綁定了System.Messaging.dll這個集合。在這個集合當中包含了System.Messaging這個名稱空間,System.Messaging名稱空間提供了存取.NET架構消息的功能。我們建立了Message類的一個實例,從而可以利用它存取消息隊列當中的消息了。如果我們需要在一個代碼綁定的文件中建立Message類,需要這樣做:

使用VB.NET在代碼綁定文件中建立Message對象
Public Class myPage
Inherits System.Web.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引入一個集合
<%@ Assembly Name="System.Messaging.dll" %>
<%@ Import Namespace="System.Messaging" %>
<script runat="server" language="VB">
Dim myDir As Message = New Message()
</script>

使用C#引入一個集合
<%@ Assembly Name="System.Messaging.dll" %>
<%@ Import Namespace="System.Messaging" %>
<script runat="server" language="C#">
Message myDir = new Message();
</script>

在我們的代碼綁定類中則應當這樣書寫:

使用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中使用<assemblies>來自動引入集合。

自動的在配置文件當中引入集合
<configuration>
<compilation>
<assemblies>
<add assembly="System.Messaging"/>
<add assembly="*"/>
</assemblies>
</compilation>
</configuration>

這個星號“*”通知ASP.NET自動引入在“應用程序的私有集合緩沖區”中的每一個集合。通過<add>元素,你可以引入任何的名稱空間在application作用域之內。

什么是應用程序的私有集合緩沖區?

.NET的文檔中是這樣定義應用程序的私有集合緩沖區的:應用程序的私有集合緩沖區被看作是位于應用程序下的子目錄/bin以及.NET構架的安裝目錄。然而通過我的測試,只有/bin目錄才被當作應用程序的私有集合緩沖區,也就是說只有這個目錄才是星號“*”的作用域。

注意:在<add>元素中的星號“*”僅僅自動連入那些位于應用程序子目錄/bin中的集合!
通過查閱.NET架構安裝的默認配置文件:config.web。我們可以知道,他自動的引入了如下的集合:

mscorlib
System
System.Data
System.Diagnostics
System.Drawing
System.Net
System.Text.RegularExPRessions
System.Web
System.Web.Services
System.xml
System.Xml.Serialization
Microsoft.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




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品国产自产拍高清av水多| 中文字幕亚洲欧美日韩高清| 国产va免费精品高清在线| 国产在线精品一区免费香蕉| 欧美日韩国产综合视频在线观看中文| 久久久久www| 国产精品久久久久不卡| 国产精品美女主播在线观看纯欲| 欧美成年人视频网站欧美| 国产成人+综合亚洲+天堂| 日韩精品在线第一页| 成人黄在线观看| 一夜七次郎国产精品亚洲| 国产精品久久久久久久一区探花| 亚洲免费福利视频| 久久精品人人做人人爽| 亚洲一区二区在线播放| 久久亚洲一区二区三区四区五区高| 国产精品网站视频| 97免费视频在线播放| 91av在线免费观看| 中文字幕亚洲色图| 久久久视频在线| 日韩成人在线视频观看| 欧美体内谢she精2性欧美| 精品动漫一区二区三区| 久久久精品视频在线观看| 亚洲网站在线播放| 亚洲一区免费网站| 亚洲韩国日本中文字幕| 亚洲第一国产精品| 日韩成人在线视频网站| 国产精品吊钟奶在线| 国产精品久久精品| 性金发美女69hd大尺寸| 亚洲成人精品久久| 在线看日韩av| 国产va免费精品高清在线观看| 欧美一区二区.| 国产精品极品尤物在线观看| 亚洲国产精品久久久久秋霞不卡| 国产精品88a∨| 国产欧美一区二区三区四区| 毛片精品免费在线观看| 57pao成人国产永久免费| 日韩av免费一区| 日韩电影视频免费| 国产视频精品一区二区三区| 中文字幕久久久av一区| 在线观看欧美成人| 亚洲va男人天堂| 亚洲色图av在线| 久久久久久久久亚洲| 久色乳综合思思在线视频| 中文字幕无线精品亚洲乱码一区| 日韩美女激情视频| 久久精品在线播放| 日韩中文在线视频| 欧美另类交人妖| 国产欧美日韩高清| 久久久久久久久久久91| 69视频在线免费观看| 国产成人aa精品一区在线播放| 欧美激情综合色综合啪啪五月| 久久99精品久久久久久琪琪| 亚洲男人的天堂在线播放| 91精品久久久久| 亚洲国产精品热久久| 亚洲自拍av在线| 色综合久久天天综线观看| 91最新在线免费观看| 国产精品海角社区在线观看| 欧美激情一级欧美精品| 国产精品69av| 久久久久久久久久久av| 亚洲美女又黄又爽在线观看| 久久中文精品视频| 国产精品一区二区三区毛片淫片| 51精品国产黑色丝袜高跟鞋| 国内精品模特av私拍在线观看| 亚州欧美日韩中文视频| 992tv成人免费影院| 成人免费看吃奶视频网站| 2020欧美日韩在线视频| 国产精品久久综合av爱欲tv| 色综合久久久888| 91免费视频网站| 91在线观看免费高清完整版在线观看| 久久久999国产精品| 国产精品日日摸夜夜添夜夜av| 午夜免费在线观看精品视频| 亚洲欧美精品中文字幕在线| 久久久久久国产精品三级玉女聊斋| 国产精品视频白浆免费视频| 精品亚洲一区二区| 亚洲视频一区二区| 欧美成人免费全部| 日韩电影大片中文字幕| 久久久噜噜噜久久久| 日韩电影中文字幕一区| 亚洲国产精品久久精品怡红院| 精品调教chinesegay| 2019av中文字幕| 日韩精品极品在线观看| 国产精品第七影院| 国模吧一区二区| 欧美一级片久久久久久久| 国产福利精品视频| 福利精品视频在线| 日韩动漫免费观看电视剧高清| 欧美精品电影免费在线观看| 国产日韩欧美中文在线播放| 久久综合色88| 另类少妇人与禽zozz0性伦| 日韩精品视频在线观看免费| 欧美在线视频播放| 国产日韩在线看片| 欧美精品少妇videofree| 一本色道久久综合狠狠躁篇的优点| 国产精品日韩电影| 欧美日韩国产中文精品字幕自在自线| 亚洲国产成人在线视频| 欧美成人小视频| 国产精品人成电影在线观看| 国产成人精品久久二区二区91| 亚洲精品v欧美精品v日韩精品| 18性欧美xxxⅹ性满足| 欧美裸体xxxx极品少妇软件| 亚洲第一视频在线观看| 亚洲精品美女视频| 日产精品久久久一区二区福利| 亚洲成色999久久网站| 亚洲精品suv精品一区二区| 欧美极品欧美精品欧美视频| 91午夜理伦私人影院| 午夜免费在线观看精品视频| 久久精品在线播放| 欧美日韩精品国产| 日韩中文字幕国产| 久久久久国产精品www| 高清在线视频日韩欧美| 国产有码一区二区| 九九精品视频在线观看| 性亚洲最疯狂xxxx高清| 日韩av观看网址| 精品久久久久久久久久ntr影视| 美女视频黄免费的亚洲男人天堂| 国产精品视频久久| 亚洲精品xxx| xxxxx91麻豆| 亚洲成人av片在线观看| 日韩欧美有码在线| 亚洲欧美日韩一区二区在线| 2021久久精品国产99国产精品| 国产精品青草久久久久福利99| 97碰碰碰免费色视频| 成人在线激情视频| 欧美精品制服第一页| 精品高清美女精品国产区| 在线观看欧美成人| www高清在线视频日韩欧美| 欧美激情第三页| 欧美极品在线播放| 欧美性猛交xxxx富婆|