以不同方式访问设置

时间:2018-11-02 17:48:52

标签: c# .net appsettings

我有一个新的(测试)控制台应用程序,我正在尝试访问设置。

enter image description here

当我尝试以这种方式访问​​它时,从我在SO和其他地方所读的内容中,这应该可以工作:

 var test1 = System.Configuration.ConfigurationManager.AppSettings["MySetting"];

但不是,它返回null。

当我这样做时,它可以正常工作:

var test2 = Properties.Settings.Default.MySetting;

为什么第一个不起作用?我读过的所有内容都表明是第一种使用它的方法。

我使用不正确吗?

编辑

回应梅森。

我对您的评论感到困惑。 app.config是在应用程序属性中进行设置的地方:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="ConsoleApp1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
    </startup>
    <applicationSettings>
        <ConsoleApp1.Properties.Settings>
            <setting name="MySetting" serializeAs="String">
                <value>testtesttest</value>
            </setting>
        </ConsoleApp1.Properties.Settings>
    </applicationSettings>
</configuration>

2 个答案:

答案 0 :(得分:2)

System.Configuration.ConfigurationManager.AppSettings用于从app.config或web.config文件(对于ASP.NET)读取设置。它不会从设置文件中读取。

答案 1 :(得分:0)

因为AppSettings是指阅读MyApp.config中的设置