我是运行.NET 3.5的C#新手,我想在App.config中存储一堆应用程序默认值,因为设置可能因服务器环境(例如开发,登台,生产)而异。我想要做的是类似于this StackOverflow article中描述的内容,但我也希望能够使用非字符串值(例如int,bool)。像这样的东西(名称值只是例子,顺便说一下):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<applicationSettings>
<MyApp>
<setting name="InitText" serializeAs="String">
<value>Hello</value>
</setting>
<setting name="StartAt" serializeAs="Integer">
<value>5</value>
</setting>
<setting name="IsWeekend" serializeAs="Boolean">
<value>True</value>
</setting>
</MyApp>
</applicationSettings>
</configuration>
有人可以提供一个如何执行此操作的示例,以及如何通过C#检索值?我已经看过很多需要使用的例子,但我不确定我是否需要这些元素,如果需要,如何创建它们。
答案 0 :(得分:30)
如何使用.NET Framework的Application Settings architecture呢?您可以对默认值进行强类型访问。
在Windows应用程序项目中,将在Resources文件夹中自动创建Settings文件。然后,您可以像在问题中一样显示保存在App.config文件中的应用程序设置。
例如:
int i = Settings.Default.IntSetting;
bool b = Settings.Default.BoolSetting;
修改强> 如果您的项目不包含设置文件,则可以通过添加新项目然后选择设置文件来添加项目。 (右键单击项目文件并执行:添加 - >新项目 - >设置文件)。在我的情况下,我将其命名为“设置”,但您可以根据需要为其命名。
添加文件后,visual studio将打开设置设计器,您可以在其中添加强类型设置。根据您的说法,您应该在应用程序范围而不是用户处设置设置。然后构建项目,您应该可以访问具有文件名的类。
答案 1 :(得分:18)
Boolean isWeekend = Convert.ToBoolean(ConfigurationManager.AppSettings["IsWeekend"])
答案 2 :(得分:2)
JayG建议的东西可以由Visual Studio自动完成。使用appsettings向导as described in the MSDN。整个Application Settings基础设施也值得一读。
答案 3 :(得分:-1)
听起来您想拥有自定义<configSection>
。基本上,它的工作原理如下:
- 创建具有正确默认值等的配置类,并设置一个漂亮的继承结构,以便根据您的web.config设置自动加载。 - 将您的配置部分添加到web.config,指定将加载您的设置的“类型”,以便.NET框架知道要初始化的内容
您可以在MSDN library上找到有关它的各种信息。这些例子是asp.net,但它们也适用于app配置。