编译器无法在app.config中找到属性(他引发SettingsPropertyNotFoundException)。 这是代码:
class Program
{
static void Main(string[] args)
{
ConfigurationFile settings = new ConfigurationFile();
settings.SoundFile = "ring.wav";
settings.BackgroundColor = Color.Red;
settings.Save();
Console.WriteLine("finished");
Console.ReadLine();
}
}
sealed internal partial class ConfigurationFile : global::System.Configuration.ApplicationSettingsBase
{
public string SoundFile
{
get
{
return ((string) this["SoundFile"]);
}
set
{
this["SoundFile"] = value;
}
}
public global::System.Drawing.Color BackgroundColor
{
get
{
return ((global::System.Drawing.Color) this["Background"]);
}
set
{
this["Background"] = value;
}
}
}
我首先认为我会选择除app.config文件中的其他名称,但它们是相同的。这是我第一次使用app.config,所以我想我做错了什么。如果有人可以帮助我,我会很好。
答案 0 :(得分:0)
您不必以这种方式使用设置。如果您[右键单击项目->添加->新建项目->设置文件(Settings1.settings为默认名称)->配置属性),则可以像这样进一步使用它
static void Main(string[] args)
{
Settings1.Default.Background = Color.Red;
Settings1.Default.SoundFile = "ring.wav";
Settings1.Default.Save();
Console.WriteLine("finished");
Console.ReadLine();
}
答案 1 :(得分:0)
您要使用的设置是与应用程序配置设置不同的项目设置。 另外,您还需要使用以下任一属性标记属性:
[System.Configuration.ApplicationScopedSetting]
public string SoundFile
//或
[System.Configuration.UserScopedSetting]
public string SoundFile
保存只会将更改保存在项目的“属性”部分下的Settings.settings中。
可以通过访问应用程序配置设置(您还需要在项目中添加对System.Configuration程序集的引用):
System.Configuration.ConfigurationManager.AppSettings["SoundFile"];
如果要在配置文件中使用ApplicationConfiguration,则可以执行以下操作:
public string SoundFile
{
get
{
return ConfigurationManager.AppSettings["SoundFile"];
}
set
{
ConfigurationManager.AppSettings["SoundFile"] = value;
}
}
它不会将值保存到文件中,但会在当前会话期间保留更新的值。