从另一个项目读取应用程序设置值时为默认值
本文关键字:默认值 设置 应用程序 另一个 项目 读取 | 更新日期: 2024-11-08 19:59:19
>我有2个项目。我正在尝试从项目 A 获取一些用户范围的应用程序设置,并从项目 B 中读取它们。为此,我创建了以下类(在项目 A 中):
public class GeneralSettings
{
public string strLogFilesPath {get; private set;}
public GeneralSettings()
{
this.strLogFilesPath = GSN_PrestaBiz_UserUI_VS2013.Properties.Settings.Default.PathLogFiles;
}
}
然后我从项目 B 中实例化类:
GSN_PrestaBiz_UserUI_VS2013.GeneralSettings ps = new GSN_PrestaBiz_UserUI_VS2013.GeneralSettings();
但是由于某种原因,我每次都只获取该类型的默认值,在这种情况下(字符串)它是",对于我在另一个类似类中的布尔值,它是"false"。
但我知道这些不是设置的值。我试图从项目 A(设置所属的同一项目)中实例化同一个类并且它有效,值是正确的,而不仅仅是默认值。
我做错了什么?
"项目"的正确术语实际上是汇编,所以我在提到"项目"时会使用它。
ConfigurationManager
无法按照您尝试使用它的方式工作。这些文件不是硬编码/锁定到特定的程序集,而是锁定到特定的可执行文件.config和user.config。
从另一个程序集检索设置时,ConfigurationManager
真正要查找的内容是在当前执行上下文的 user.config/exe.config 文件中,但在另一个程序集的命名空间下。
这就是为什么当您在运行时使用 ConfigurationManager
查看一个程序集的配置时,这些设置存在,但在另一个可执行文件的运行时中,它们不存在。