2010-08-26 58 views
3

我還是新來的C#...我正在構建一個WPF應用程序,我試圖應用一些用戶應用程序設置。插入標準的應用設置(int,double,string等)很容易。我甚至有像插入WindowState的東西。應用程序設置+ DirectoryInfo/FileInfo

我想有一個DirectoryInfo和/或FileInfo作爲可保存的設置,而不是字符串。

所選類型:System.IO.File給出錯誤消息「不支持抽象類型」。

這是有道理的,因爲如何實現抽象類型作爲設置。

所選類型:System.IO.FileInfo給出「Type」System.IO.FileInfo'未定義的錯誤消息「。

DirectoryInfo/FileInfo無法設置爲應用程序設置?可能嗎?值得的時間?你如何確定什麼是可用的設置,什麼不是?

我對用戶設置的體驗是有限的,我試圖擴展我的知識,這讓我難住。

編輯:我試圖張貼一些截圖,但顯然我太新了。我正在使用Visual Studio,應用程序設置。

進一步注意到:

http://msdn.microsoft.com/en-us/library/a65txexh.aspx

應用程序設置可以被存儲爲XML是可序列化的或具有實現的ToString/FromString的TypeConverter,任何數據類型。最常見的類型是String,Integer和Boolean,但您也可以將值存儲爲Color,Object或連接字符串。

DirectoryInfo di = new DirectoryInfo(@"C:\"); 
di.ToString(); 

我失去了一些東西,因爲它的ToString()...

回答

2

是的,這是不可能的。應用程序設置使用XML序列化進行序列化。一個類需要可序列化的硬要求是它需要一個無參數的構造函數。這兩個班都沒有。

這不是一個真正的問題,因爲任何一個類都有一個構造函數需要一個字符串。所以,設置一個字符串,你可以總是得到一個FileInfo或一個DirectoryInfo出來。儘管它必須引用存在的文件系統對象。如果這是一個問題,那就製作你自己的班級吧。

+1

啊......沒有參數的構造函數......在任何地方都沒有提到任何說明。 我將它設置爲字符串atm,並在後臺使用IsValid類型代碼。我只是試圖保持端到端的一致性。 – WernerCD 2010-08-26 21:09:17