2013-01-22 38 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

相关问题