- 1. WeBuilder Portable(高效快速的web代碼編輯器) V11...
- 2. QtWeb(安全快速的網(wǎng)頁(yè)瀏覽器) V3.7.3 多國(guó)語(yǔ)言綠色...
- 3. 快手(專用于模擬自動(dòng)化、web自動(dòng)化、自動(dòng)化測(cè)試、機(jī)...
- 4. South River WebDrive(FTP客戶端) v8.24.2132 特別...
- 5. nginx(輕量級(jí)的高性能WEB服務(wù)器) V1.0.4 官方安裝版
- 6. WEB登錄器(快速登錄管理論壇博客的好幫手) V1.1.1....
- 7. ESET VC52 WebID高速下載 V1.0.0.0
- 8. 魔樂(lè)手機(jī)管家Web版 for Android免費(fèi)下載 V1.0
- 9. 動(dòng)物風(fēng)景壁紙 Webshots風(fēng)光動(dòng)物攝影壁紙
- 10. WebShot(將網(wǎng)頁(yè),網(wǎng)站拍成照片縮略圖的軟件) V1.8.5...
web.config中存儲(chǔ)自定義對(duì)象的正確方法
如何在web.config中存儲(chǔ)自定義對(duì)象
在本文中將要討論web.config.在我平日里,都習(xí)慣把一些數(shù)據(jù)放在web.config的appSettings節(jié)里,當(dāng)需要時(shí)再讀取。
那都是string字符串的形式。當(dāng)然了不止這些,我們也可以通過(guò)編程方式修改這些數(shù)據(jù)。
現(xiàn)在重要的一點(diǎn)需要說(shuō)的是,我們也可以在web.config里存放自定義的類型,雖然通常情況不這么做。但是在很多情形
下,這樣做很有用。
大家是否嘗試過(guò)修改或者添加過(guò)web.config里的一些數(shù)值。我們先簡(jiǎn)單的討論下這個(gè):
首先,這些都是平常常見(jiàn)到的,把一些常量數(shù)據(jù)放在web.config的appSettings節(jié),根據(jù)需要讀取。那么怎么讀呢(對(duì)初學(xué)者):
//數(shù)據(jù)存放在web.config中形如: // 讀取 string message = ConfigurationManager.AppSettings["WelcomeMessage"];
現(xiàn)在,要是想要通過(guò)程序修改appSettings,我們可以這樣做:
//修改 Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); config.AppSettings.Settings["WelcomeMessage"].Value = "Hello All, Welcome to my updated site."; config.Save();
接著,如果想要在web.config里增加數(shù)據(jù)怎么做呢,如下:
//增加 Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); config.AppSettings.Settings.Add("ErrorMessage", "An error has been occured during processing this request."); config.Save();
上面的代碼是在web.config里新增新的鍵值對(duì),F(xiàn)在我們可以在應(yīng)用程序的任何地方讀取它了。
現(xiàn)在,擺在面前的問(wèn)題是,我們是否可以在配置里存儲(chǔ)自定義的數(shù)據(jù)。
當(dāng)然可以...
我們可以存儲(chǔ)對(duì)象。讓我們一起來(lái)看看怎么做。
我創(chuàng)建了一個(gè)樣例程序。在這個(gè)例子中,我在web.config文件里保存了一個(gè)自定義的NewError類的一個(gè)對(duì)象實(shí)例。同時(shí)
當(dāng)需要時(shí)對(duì)其進(jìn)行修改。
請(qǐng)按照下面的步驟開(kāi)始實(shí)現(xiàn)它:-)
a)創(chuàng)建一個(gè)繼承自ConfigurationSection(該類在System.Configuration空間可以找到)的類。每個(gè)屬性(Porperty)必
須有一個(gè)屬性(attribute)ConfigurationProperty(帶有屬性名和一些參數(shù),這個(gè)名字會(huì)直接映射到web.config),讓我
們看下NewError類:
public class NewError:ConfigurationSection { //譯注:每一個(gè)屬性(Porperty:get,set的那玩意;-))都對(duì)應(yīng)有個(gè)屬性Attribute【[ConfigurationProperty 】 [ConfigurationProperty ("Id",IsRequired = true)] public string ErrorId { get { return (string)this["Id"]; } set { this["Id"] = value; } } [ConfigurationProperty("Message", IsRequired = false)] public string Message { get { return (string)this["Message"]; } set { this["Message"] = value; } } [ConfigurationProperty("RedirectURL", IsRequired = false)] public string RedirectionPage { get { return (string)this["RedirectURL"]; } set { this["RedirectURL"] = value; } } [ConfigurationProperty("MailId", IsRequired = false)] public string EmailId { get { return (string)this["MailId"]; } set { this["MailId"] = value; } } [ConfigurationProperty("DateAdded", IsRequired = false)] public DateTime DateAdded { get { return (DateTime)this["DateAdded"]; } set { this["DateAdded"] = value; } } }
和你看到的一樣,每個(gè)屬性有屬性Configuration及一些值,比如屬性ErrorId:
[ConfigurationProperty ("Id",IsRequired = true)]
意思是ErrorId在web.config里存為Id而且不可以缺少的必要字段。還有一些可選元素根據(jù)需要使用。
我們?cè)谏钊肟纯催@個(gè)屬性,它有些不同:
public string ErrorId { get { return (string)this["Id"]; } set { this["Id"] = value; } }
在這里value值存為鍵"id",和web.config里對(duì)應(yīng)。
b.)現(xiàn)在需要要做的就是在section組注冊(cè)、添加一個(gè)section告訴web.config你需要這種類型數(shù)據(jù)。
必須放在里如下:
c.)現(xiàn)在可以直接在配置文件里添加這樣的對(duì)象了:
d.)然后在你的頁(yè)面這樣讀。
NewError objNewError = (NewError)ConfigurationManager.GetSection("errorList");
也可以通過(guò)程序方式保存一個(gè)新對(duì)象:
NewError objNewError = new NewError() { RedirectionPage="www.rediff.com", Message = "New Message", ErrorId="0", DateAdded= DateTime.Now.Date }; Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); config.Sections.Add("errorList", objNewError); config.Save();
甚至可以添加一個(gè)自定義的組,然后在此section區(qū)放置一些自定義元素。
Asp.net提供給我們非常強(qiáng)大的編程接口API,我們可以很輕松的讀取/編輯web.config文件。
最后希望您心情愉悅的瀏覽此文,也非常感激您的回饋信息。
- 1. XMLHttpRequest在Web開(kāi)發(fā)的利與弊
- 2. 解決虛擬機(jī)網(wǎng)卡不能啟動(dòng)的問(wèn)題(chkconfig NetworkM...
- 3. 教你批量做web網(wǎng)頁(yè)
- 4. 十招教你如何抵御Web威脅(保護(hù)網(wǎng)關(guān))
- 5. 關(guān)于Web服務(wù)器黑客常用的攻擊手段
- 6. 教你如何保護(hù)好你的IIS Web服務(wù)器
- 7. 六招提升你的Web服務(wù)器安全度
- 8. web.config中存儲(chǔ)自定義對(duì)象的正確方法
- 9. WebQQ 3.0功能初體驗(yàn)
- 10. 115網(wǎng)盤出新版 平臺(tái)強(qiáng)大如WebQQ