日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

在配置文件(.settings、.config)中存储自定义对象

發(fā)布時間:2025/7/14 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在配置文件(.settings、.config)中存储自定义对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

我前面曾寫過一篇《使用配置文件(.settings、.config)存儲應(yīng)用程序配置》,我在其中指出“settings無法實現(xiàn)對一些復(fù)雜類型及自定義類型的支持”。

而今天我發(fā)現(xiàn)其實它是支持自定義類型的,僅僅是不能支持本項目中的自定義類型,可以支持引用的項目或類庫的自定義類型。至于為什么不支持本項目中的自定義類型,我也不得而知,猜想可能是怕加載時造成沖突吧。

?

范例

我們來做一個使用自定義類型的配置文件范例。

首先新建一個類庫項目,我這里以SettingTest2命名該項目,然后創(chuàng)建下面這樣一個簡單的類:

public?class?MyClass

{

????public?DateTime?time

????{

????????get

????????{

????????????return?_time;

????????}

????????set

????????{

????????????_time?=?value;

????????}

????}

????private?DateTime?_time;

?

????public?int?num

????{

????????get

????????{

????????????return?_num;

????????}

????????set

????????{

????????????_num?=?value;

????????}

????}

????private?int?_num;

}

由目前所知的情況看來,配置文件不支持泛型集合,所以當(dāng)我們需要存儲自定義類型的集合的時候,就要再創(chuàng)建一個用來存放該自定義類型集合的類:

public?class?MyClassList

{

????public?List<MyClass>?list

????{

????????get

????????{

????????????return?_list;

????????}

????????set

????????{

????????????_list?=?value;

????????}

????}

????private?List<MyClass>?_list;

}

這樣這個類庫項目就搞好了,下面再建立一個控制臺項目用于測試。

引入剛才的項目:

創(chuàng)建配置文件,建立一個新屬性名為“MyClassList”,在其類型列表中點擊最下面的“瀏覽…”,即可在彈出的對話框中找到剛才我們創(chuàng)建的類:

在程序中編寫測試代碼:

static?void?Main(string[] args)

{

????//初始化隨機數(shù)生成對象

????Random?r?=?new?Random();

????//驗證是否為空,如果為空的話就初始化一下

????if?(Settings1.Default.MyClassList?==?null)

????{

????????Settings1.Default.MyClassList?=?new?SettingTest2.MyClassList();

????????Settings1.Default.MyClassList.list?=?new?List<SettingTest2.MyClass>();

????}

????//遍歷輸出所有項

????foreach?(var?f?in?Settings1.Default.MyClassList.list)

????{

????????Console.WriteLine(string.Format("{0}:{1}", f.num, f.time));

????}

????Console.Read();

????//添加一條新項,并保存配置

????Settings1.Default.MyClassList.list.Add(new?SettingTest2.MyClass?{ num?=?r.Next(1000), time?=DateTime.Now });

????Settings1.Default.Save();

}

不斷運行、關(guān)閉程序,以測試配置文件的使用情況:

?

很完美哈,再來看看生成的配置文件代碼:

很好,跟我們自己XML序列化的沒多大區(qū)別。

?

結(jié)語

這樣一來,我們就能以面向?qū)ο蟮姆绞讲僮鞒绦蚺渲?#xff0c;又不用自己費力寫序列化代碼了,請各位善加利用吧:)

另外,關(guān)于泛型類型的支持,我覺得應(yīng)該也是可以的吧,畢竟自定義類型中包含泛型集合的情況都可以被很好地支持,但沒找到設(shè)置方法,難道說要手動改寫配置文件了?期待高手解答。

?

下載

本文的XPS版本:http://www.uushare.com/user/icesee/file/2273504


本文轉(zhuǎn)自斯克迪亞博客園博客,原文鏈接:http://www.cnblogs.com/SkyD/archive/2009/11/30/1614121.html,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的在配置文件(.settings、.config)中存储自定义对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。