繁体   English   中英

使用App.config设置强类型变量

[英]Using App.config to set strongly-typed variables

我是运行.NET 3.5的C#新手,我想在App.config中存储一堆应用程序默认值,因为设置可能会因服务器环境(例如,开发,登台,生产)而异。 我想做的事情与此StackOverflow文章中描述的类似,但是我也希望能够使用非字符串值(例如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#检索值吗? 我已经看到了很多需要使用和的示例,但是我不确定是否需要这些元素,以及是否需要创建这些元素。

使用.NET Framework的“ 应用程序设置”体系结构怎么样。 您可以强类型访问默认值。

在Windows应用程序项目上,“设置”文件是在“资源”文件夹中自动创建的。 然后,您可以添加问题中显示的App.config文件中保留的应用程序设置。

例如:

int i = Settings.Default.IntSetting;

bool b = Settings.Default.BoolSetting;

编辑:如果您的项目不包含设置文件,则可以随时添加一个新项,然后选择一个设置文件来添加一个。 (右键单击项目文件,然后执行:添加->新项目->设置文件)。 在我的情况下,我将其命名为“设置”,但您可以随意命名。

添加文件后,Visual Studio将打开设置设计器,您可以在其中添加强类型设置。 根据您所说的,您应该在“应用程序”范围而不是用户处设置设置。 然后构建项目,您应该可以使用文件名访问类。

Boolean isWeekend = Convert.ToBoolean(ConfigurationManager.AppSettings["IsWeekend"])

JayG建议的操作可以由Visual Studio自动完成。 使用MSDN中所述的appsettings向导。 此外,整个应用程序设置基础结构可能值得一读。

听起来您想拥有一个自定义的<configSection> 基本上,它是这样的:

-创建一个具有适当默认值等的配置类,并设置一个不错的继承结构,以便它将根据您的web.config设置自动加载。 -将config部分添加到web.config中,指定将加载设置的“类型”,以便.NET框架知道要初始化的内容

您可以在MSDN库上找到有关它的各种信息。 示例是asp.net,但它们也可以与应用程序配置一起很好地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM