C# 应用程序设置以及如何读取它们
C# application settings and how to read them
我想存储和读取一些用户可以更改的设置。我通过项目的属性按照 here 所述进行操作,但我看到还有一个名为“Settings.settings”的文件。这个文件是空的。不需要这个文件吗?我可以删除它吗?
我的另一个问题是如何读取设置。例如,我有一个名为“InitialSave”的布尔值设置。使用它会出现错误“运算符‘==’无法应用于 'object' 和 'bool' 类型的操作数”。我可以直接从设置中读取还是应该在启动时声明每个设置?
Properties.Settings.Default["InitialSave"] == true
您右键单击它并选择“打开方式...设置设计器”:
或者您获取项目的属性并单击左侧的“设置”。然后你看到这个:
您将一些设置和类型放入:
您在代码中写入 Properties.Settings.Default.
,然后您会看到您的设置:
您可以读取和写入它们,作为您指定类型的属性
您甚至可以将它们绑定到控件:
切换控件刻度状态会改变 Proeprties.Settings.Default.IsMinimized
的值
注意:只有用户范围设置可以是 changed/saved。 App Scope 设置保存在 YourExeName.config 文件中,可以通过使用文本编辑器编辑文件来更改。用户范围设置保存在别处(在您的用户文件夹中)并且可以在运行时修改和保存以在下次程序启动时保留该值
编辑:
好的,所以你说你可以在两个地方打开Settings.settings;我无法通过以下步骤实现这一点(使用 .NET 核心,因为 Wolle 的回答声称核心不同;我也不支持该声明):
- 新项目,.NET Core Winforms:
- 转到项目..设置“该项目不包含设置文件,单击以创建一个”,等等:
- 切换到项目属性中的另一个选项卡,例如:
- 对click/Open
settings.settings
文件。看到这个:
- 尝试在项目属性中返回它,看到这个:
- 添加一些设置:
- 在代码中访问..
不幸的是,@Caius Jard 的回答有点过时,但这是 .NET Core 之前环境的首选方法。
对于当前的 .NET 5 框架,最有用的来源应该是 MSDN docs on configuration。
如果您想将设置存储在文件中,请查看 file configuration provider。
var appSettings = ConfigurationManager.AppSettings;
// read
var foo = appSettings["bar"];
// write
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
我想存储和读取一些用户可以更改的设置。我通过项目的属性按照 here 所述进行操作,但我看到还有一个名为“Settings.settings”的文件。这个文件是空的。不需要这个文件吗?我可以删除它吗?
我的另一个问题是如何读取设置。例如,我有一个名为“InitialSave”的布尔值设置。使用它会出现错误“运算符‘==’无法应用于 'object' 和 'bool' 类型的操作数”。我可以直接从设置中读取还是应该在启动时声明每个设置?
Properties.Settings.Default["InitialSave"] == true
您右键单击它并选择“打开方式...设置设计器”:
或者您获取项目的属性并单击左侧的“设置”。然后你看到这个:
您将一些设置和类型放入:
您在代码中写入 Properties.Settings.Default.
,然后您会看到您的设置:
您可以读取和写入它们,作为您指定类型的属性
您甚至可以将它们绑定到控件:
切换控件刻度状态会改变 Proeprties.Settings.Default.IsMinimized
注意:只有用户范围设置可以是 changed/saved。 App Scope 设置保存在 YourExeName.config 文件中,可以通过使用文本编辑器编辑文件来更改。用户范围设置保存在别处(在您的用户文件夹中)并且可以在运行时修改和保存以在下次程序启动时保留该值
编辑:
好的,所以你说你可以在两个地方打开Settings.settings;我无法通过以下步骤实现这一点(使用 .NET 核心,因为 Wolle 的回答声称核心不同;我也不支持该声明):
- 新项目,.NET Core Winforms:
- 转到项目..设置“该项目不包含设置文件,单击以创建一个”,等等:
- 切换到项目属性中的另一个选项卡,例如:
- 对click/Open
settings.settings
文件。看到这个:
- 尝试在项目属性中返回它,看到这个:
- 添加一些设置:
- 在代码中访问..
不幸的是,@Caius Jard 的回答有点过时,但这是 .NET Core 之前环境的首选方法。
对于当前的 .NET 5 框架,最有用的来源应该是 MSDN docs on configuration。
如果您想将设置存储在文件中,请查看 file configuration provider。
var appSettings = ConfigurationManager.AppSettings;
// read
var foo = appSettings["bar"];
// write
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}