2013-01-22 80 views
0

花了無數小時來更改我的代碼,並刪除了所有不會被序列化,並將其更改爲字符串和編寫函數從字體/顏色轉換爲字符串,然後再回來我已經厭倦了,並決定讓我自己的基本串行..在C#應用程序中存儲用戶設置

private void saveSettings() 
{ 
    PropertyInfo[] properties = typeof(settingsObj).GetProperties(); 
    foreach (settingsObj s in settings) 
    { 
     foreach (PropertyInfo property in properties) 
     { 
      MessageBox.Show(s.[property.Name]); 
     } 
    } 
} 

我如何引用變量使用字符串,在PHP中我會怎麼做:

$varIWantToRead = "foobar"; 
$varName = "varIWantToRead"; 
print $$varName; 
+0

更多鈔票複製http://stackoverflow.com/questions/453161/best-practice-to-save-application-settings-in-a-windows-forms-application – spajce

回答

1

這可以很容易地在exe.config文件中完成。下面是一個由微軟寫了起來:

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

你也可以創建自己的類或結構和它們序列化爲XML:

http://support.microsoft.com/kb/815813

編輯回答新問題: 林不太確定我知道你在說什麼,但我們在這裏:

In PHP: 
$varIWantToRead = "foobar"; 
$varName = "varIWantToRead"; 
print $$varName; 


in c#: 
string varIWantToRead = "foobar"; 
string varName = varIWantToRead; 
Console.WriteLine(varName); // Outputs foobar 
+0

是多數民衆贊成正是我的意思,在PHP中它被稱爲一個變量變量,我的意思是它作爲我後面的一個例子:'MessageBox.Show(s。[property.Name]);'那實際上並不工作。 –

+0

什麼類型是s [ Property.Name]您可能需要調用.ToString() – Botonomous

0

Yo你可以使用Winforms設置的默認行爲,應用程序設置。 Take a look at what microsoft says in briefgoes into more details in another link

XML是保持數據的動態的方式,有很多樣本網上像this tutorialthis microsoft link

+0

我需要以編程方式添加配置文件,從我可以看到您必須在設計時定義所有設置.. –

+0

以及在動態配置文件的情況下,您可以使用序列化/反序列化一種XML,以靈活的格式保存用戶信息。 –

+0

這就是我想要做的,可以使用什麼對象類型來存儲一個類,所以我可以這樣做:'profiles ['profile1']。FontColor = Color.FromArgb(255,0,0,0) ;' –

0

這正是我一直在尋找。

謝謝你們。

Serializing Lists of Classes to XML

+0

你介意選擇回答你問題的用戶嗎? – Botonomous

+0

我還沒有得到我的解決方案正常工作,當我完成後,我會發布我的解決方案,然後選擇。 –

+0

你有什麼問題? – Botonomous

相關問題