我的AppModel基类上有以下代码:
public string GetParameter(string key)
{
//Allow local config file to override DB setting
string retval = ConfigurationManager.AppSettings[key];
if (!string.IsNullOrEmpty(retval))
{
Trace.TraceInformation("{0} from ConfigurationManager.AppSettings is '{1}'", key, retval);
return retval;
}
//No setting in config file - check for ProfileParameter from DB
Parameters.TryGetValue(key, out retval);
Trace.TraceInformation("{0} from ProfileParameter is '{1}'", key, retval);
return retval;
}
我在Excel Addin中看到一个参数值来自ConfigurationManager.AppSettings,但我不知道它在哪里找到参数 - ConfigurationManager正在使用的配置文件的路径是什么?有没有办法向ConfigurationManager询问其知识来源?
答案 0 :(得分:0)
在VS(设置>添加新项目)中创建配置对象值时,会为其分配一个默认值(等于创建时的值)。
如果未找到配置文件/未加载/ etc,则使用默认值。
查看项目的 Settings.Designer.cs 文件,了解设置上方的属性global::System.Configuration.DefaultSettingValueAttribute
。
测试项目中的设置示例:
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("This is my default string value")] // << This is what you are looking for
public string TestSetting
{
get
{
return ((string)(this["TestSetting"]));
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")] // << This is what you are looking for
public bool AnotherSetting
{
get
{
return ((bool)(this["AnotherSetting"]));
}
set
{
this["AnotherSetting"] = value;
}
}