在运行时加载 App.Config

Posted

技术标签:

【中文标题】在运行时加载 App.Config【英文标题】:Load App.Config at runtime 【发布时间】:2012-02-11 21:46:28 【问题描述】:

我正在使用 IBM 的 Rational Functional Tester(RFT) 工具创建一个测试项目(我们使用的是它的 VB 版本,它只支持到 .net 3.5)。在这个项目中,我正在使用实体框架进行所有数据库查询.问题是实体框架从 App.Config 文件中检索“元数据”、“连接字符串”等,而 RFT 不允许我将 App.Config 添加到项目中(我猜它是这样设计的——我用谷歌搜索将 App.Config 文件添加到 rft 项目并没有提出任何结果),并且实体框架要求您在入口点拥有 app.config 文件。我正在构建字符串以在代码中传递给实体框架,但我的老板真的不喜欢这样。 因此,看看我的选择,我认为以下 2 种解决方案中的任何一种都应该足够(或者如果您有更好的解决方案,请提出建议)。

    是他们 的任何方式。 他们是否可以通过任何方式将 App.Config 添加到 RFT 项目中(应该 真的是我的第一个问题)。

如果你们能帮助我,那就太好了。 提前致谢。

【问题讨论】:

在我目前正在进行的一个项目中。我通过实体上下文进行连接,我的 web.config 中没有引用 EF。你确定你需要一个配置吗? @kcbeard :奇怪的是我昨天添加了一条评论,但似乎没有看到它。回答您的评论是的,我确实需要一个配置文件,我创建了一个 vb.net 控制台应用程序只是为了测试它是 rft 还是其他东西,事实证明,将配置文件添加到控制台应用程序后,它可以正常工作. @kcbeard ***.com/questions/3491165/… 是的,我从来没有在没有配置文件的情况下工作过,所以我真的不知道是否需要它。我只知道我在运行时定义了我的实体上下文或基本上定义了我的数据库连接,因此在处理项目时总是会删除实体框架的自动配置编辑。基本上是因为连接字符串发生在每个用户的基础上。我希望我能提供更多帮助,但我对您的具体工作没有任何经验。 @kcbeard: 嘿,我找到了粘贴下面答案的方法,感谢您的帮助 【参考方案1】:

经过大量研究,我发现您可以在运行时使用以下方法加载配置文件,

      ExeConfigurationFileMap map = new ExeConfigurationFileMap();
      map.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Assembly.GetExecutingAssembly().ManifestModule.Name + ".config");
      Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
      var configValue = config.ConnectionStrings.ConnectionStrings["refrenceNameinConfigfile"].ConnectionString;

只需确保您的 App.config 位于运行 exe 文件的文件夹中

【讨论】:

以上是关于在运行时加载 App.Config的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Unity 运行时加载 FBX 文件?

在页面加载时自动运行javascript代码[重复]

.net 在运行时重新加载程序集

在运行时加载、使用和卸载程序集

在运行时用参数实例化加载的 swf

在运行时从另一个 AppDomain 调试动态加载的 DLL