【问题标题】:HowTo: Detect .Net Configuration Section instance without Loading into memory?如何:检测 .Net 配置节实例而不加载到内存中?
【发布时间】:2008-11-05 18:17:20
【问题描述】:

有谁知道如何检测.net 配置文件中是否存在配置节的实例,而无需实际将配置节加载到内存中,也不必手动解析 xml 文件 - 即使用系统。配置命名空间。

我尝试过使用 System.Configuration.ConfigurationManager.GetSection(...) 但这似乎返回了配置部分的“默认”实例,即使它在配置文件中不存在。

【问题讨论】:

  • 该部分是否存在为什么重要?听起来你的设计有问题。您正在为缺少应该以其他方式确定的部分附加含义。
  • 配置部分的存在决定了我们是否在应用程序域内执行,而一段通用代码需要根据该条件是否存在做出分支决策。跨度>
  • 不确定您所说的应用程序域是什么意思,因为所有 .NET 代码都在应用程序域内执行。我敢打赌,无论配置部分是否存在,都不是确定代码执行方式的“最佳实践”方式。这里有大时代的气味。
  • 这里没有深入的架构细节,系统中的一些处理被委派给具有自定义配置的非默认应用程序域内部的插件。我相信你是对的,有更好的方法来实现我需要做的事情,谢谢你的戳!

标签: .net configuration system.configuration


【解决方案1】:

如果您使用的是本地配置文件(而不是特定于机器),那么您可以使用 XML(例如 linq to xml)通过从反射中获取 exe 代码库来检查配置文件(例如 Assembly.GetExecutingAssembly().CodeBase )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2014-12-26
    • 2020-04-08
    • 1970-01-01
    相关资源
    最近更新 更多