applicationSettings在外部文件中

时间:2013-04-19 13:03:54

标签: .net configuration

我一直在尝试使用http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource%28VS.85%29.aspx上的一些代码将我的应用程序设置放在外部文件中,但无法使其正常工作。

App.config中:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings">
          <section name="ConsoleApplication1.Settings" />
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <ConsoleApplication1.Settings configSource="externalSettings.config" />
    </applicationSettings>
</configuration>

externalSettings.config:

<ConsoleApplication1.Settings>
  <setting name="TestSetting" serializeAs="String">
    <value>Hello</value>
  </setting>
</ConsoleApplication1.Settings>

我正在尝试像往常一样使用这些设置:

var test = ConsoleApplication1.Settings.Default.TestSetting;

2 个答案:

答案 0 :(得分:0)

查看此帖子

AppSettings on a different .config file not being updated

只需与您的解决方案进行比较

    <appSettings file="Settings.config">
    <add key="RestartApp" value="-1" />
  </appSettings>


  <appSettings>
    <add key="AppTitle" value="MVC Web Access" />
    <add key="DefaultWebpage" />
    <add key="CustomCSS" />
    <add key="TktsEmailTo" value="email@email.com" />
    <add key="EmailFrom" value="email@email.com" />
    <add key="EmailFromSMTP" value="mail.email.com" />
    <add key="EmailFromPW" value="fakePassword" />
  </appSettings>


  <appSettings file="Settings.config">
    <add key="RestartApp" value="-1" />
    <add key="AppTitle" value="New title" />
    <add key="DefaultWebpage" value="index.aspx" />
    <add key="CustomCSS" />
    <add key="TktsEmailTo" value="newemail@email.com" />
    <add key="EmailFrom" value="newemail@email.com" />
    <add key="EmailFromSMTP" value="mail.email.com" />
    <add key="EmailFromPW" value="NewFakePassword" />
  </appSettings>

我使用这种方法成功地将appSettings移动到另一个文件

希望有所帮助

答案 1 :(得分:0)

我确实遇到了同样的问题。 已使用配置中正确的名称空间解决了该问题

设置类别:

user = User.objects.create_user(username=request.session['profile']['email'],
                    email=request.session['profile']['email'], password=request.session['profile']['password'],
                    **user_fields)

用法:

namespace ConsoleApp1.Properties {


[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

    private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

    public static Settings Default {
        get {
            return defaultInstance;
        }
    }

    [global::System.Configuration.ApplicationScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public string TestSetting {
        get {
            return ((string)(this["TestSetting"]));
        }
    }
}
}

config:

var test = ConsoleApp1.Properties.Settings.Default.TestSetting;

externalSettings.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <section name="ConsoleApp1.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />      
</sectionGroup>
</configSections>
  <applicationSettings>
    <Settings configSource="externalSettings.config" />
  </applicationSettings>
  <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
  </startup>
</configuration>