【问题标题】:Get Configuration section获取配置部分
【发布时间】:2012-05-03 08:11:06
【问题描述】:

我有一个桌面应用程序,我需要用它来测试我的 Windows 服务。

应用程序只是调用一个处理我的业务的 Windows 服务类,首先它应该从 app.config 加载一些数据。

应用程序配置在服务项目中,我将配置存储在自定义部分 [ABCConfigurationSection] 中。 喜欢...

<ABCConfigurationSection>
    <ConnectSettings>
      <clear />
      <add key="HostIp" value="10.0.X.X"/>
    </ConnectSettings>
 </ABCConfigurationSection>

主要配置部分就像..

<configuration>
  <configSections>
    <section name="ABCConfigurationSection" type="ABCConfiguration, App.Core" />
  </configSections>
</configuration>

当我检索将“ABCConfigurationSection”作为部分名称传递的配置部分时,我得到了 null ! 关于应用程序配置的结构是否缺少某些东西的任何想法

【问题讨论】:

  • 你能显示代码吗,你是怎么调用的?
  • section = System.Configuration.ConfigurationManager.GetSection("ABCConfigurationSection") as App.Core.ABCConfiguration;

标签: c# windows-services app-config configurationmanager


【解决方案1】:

在您的 configSections 中,对于“ABCConfigurationSection”部分,您声明一个名为“ABCConfiguration”的类型是处理您的部分的类型。

这意味着,在您的代码中,您应该定义一个名为 ABCConfiguration 的类,该类派生自 ConfigurationSection 以读取您的部分。

关于这个主题有很多细节。这是指向MSDN 的链接,其中提供了完整示例

【讨论】:

  • 我有那个类,我将它与另一个应用程序 - Web 应用程序一起使用 - 没有错误也没有问题。在win-service中使用with时的问题
  • 你能检查一下你的配置文件的文件属性吗?这是一个类似的问题:TypeInitializationException
  • 我不认为,我的文件属性与参考帖子中的不同!它不是只读的,即使没有解锁按钮也不会隐藏
猜你喜欢
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 2013-12-05
  • 2022-07-25
  • 2011-05-25
  • 1970-01-01
  • 2010-12-24
相关资源
最近更新 更多