【问题标题】:Storing User Settings in C# Application在 C# 应用程序中存储用户设置
【发布时间】:2013-01-22 19:05:15
【问题描述】:

在花费无数小时更改我的代码并删除所有不会序列化的内容并将它们更改为字符串并编写函数以从字体/颜色转换为字符串并再次转换回来之后,我已经厌倦了并决定制作我自己的基本序列化程序。 .

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;

【问题讨论】:

标签: c# settings


【解决方案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

【讨论】:

  • 是的,这正是我的意思,在 PHP 中它被称为变量变量,我的意思是作为我所追求的一个例子:MessageBox.Show(s.[property.Name]); 这实际上不起作用..
  • s是什么类型。[Property.Name]你可能需要调用.ToString()
【解决方案2】:

您可以使用 winforms 设置的默认行为,即应用程序设置。 Take a look at what microsoft says in brief 和 goes into more details in another link

XML 是一种动态的数据保存方式,网上有很多示例,如this tutorial 和this microsoft link

【讨论】:

  • 我需要以编程方式添加配置文件,据我所知,您必须在设计时定义所有设置..
  • 在动态配置文件的情况下,您可以使用 XML 序列化/反序列化以灵活的格式保存用户信息。
  • 这就是我想要做的,我可以使用什么对象类型来存储一个类,所以我可以这样做:profiles['profile1'].FontColor = Color.FromArgb(255, 0, 0, 0);
【解决方案3】:

这正是我想要的。

谢谢各位。

Serializing Lists of Classes to XML

【讨论】:

  • 您介意选择回答您问题的用户吗?
  • 我的解决方案还没有正常工作,我会在完成后发布我的解决方案,然后选择。
  • 你有什么问题?
猜你喜欢
  • 2011-03-23
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
相关资源
最近更新 更多