我一直在尝试使用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;
答案 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>