C#:如何将对象的内容作为标识符

时间:2015-01-30 21:28:15

标签: c# xml class colors

我遇到了我的c#应用程序的问题,我有一个类(设置),我在其中存储我的应用程序的设计设置: 设置类:

public class settings
{
    public string menuBackground, textColor, overallBackground, backgroundImage;
}

我已将设置存储在XML文件中:

<settings>
    <menuBackground>Black</menuBackground>
    <textColor>SteelBlue</textColor>
    <overallBackground>White</overallBackground>
    <backgroundImage>none</backgroundImage>
</settings>

但现在的问题是我需要更改应用程序中表单项的颜色。

我设法使对象形成xml文件,这不是问题,我试过这个:

var path = @"c:\test\test.xml";

using (FileStream fs = new FileStream(path, FileMode.Open))
{
    XmlSerializer xSer = new XmlSerializer(typeof(settings));
    settings setting = (settings) xSer.Deserialize(fs);
    menuStrip1.BackColor = Color.setting.background;
    menuStrip1.ForeColor = setting.foreground;
}

但是visual studio告诉sme颜色需要一个标识符,所以现在我的问题是:如何在Color之后得到我的setting.background中的颜色,所以在这种情况下例如它将是:Color.black;

2 个答案:

答案 0 :(得分:1)

您可以使用Enum.Parsestring解析为枚举类型:

 menuStrip1.BackColor = (Color)Enum.Parse(typeof(Color), setting.background);

答案 1 :(得分:1)

您还没有提到您正在使用的UI框架。如果它是使用System.Drawing中的颜色的东西,那么您需要执行Color.FromName(setting.background)