创建配置节处理程序出错

时间:2015-01-16 21:24:25

标签: c# .net dependency-injection spring.net

我有一个MVC项目,它使用Simple Injector进行DI。我在我的网络配置中有一个部分如下:

  <bar>
    <foo>
      <add key="my.key" value="my.value" />
      <add key="my.key2" value="my.value2" />
    </foo>
  </bar>

在我的网络配置文件的顶部,我已在我的服务层添加了此部分及其相关的代码文件,如下所示:

  <configSections>
    <section name="bar" type="MVCProj.Service.Services.MyConfigurationSection, MVCProj.Service, Culture=neutral" />
  </configSections>

使用Simple Injector Registration类然后在我的RegisterServices方法的服务层中,我有以下内容:

  public static void RegisterServices(Container container)
    {
        container.RegisterSingle(() => ((MyConfigurationSection)ConfigurationManager.GetSection("bar")));

    }

在课程中我使用MyConfigurationSection,我有以下内容:

private readonly MyConfigurationSection _myConfigSection;

public MyService(MyConfigurationSection myConfigSection)
{
    _myConfigSection = myConfigSection;
}

作为参考,MyConfigurationSection类如下:

public class MyConfigurationSection : ConfigurationSection
{
    [ConfigurationProperty("foo", IsRequired = true)]
    public KeyValueConfigurationCollection Foo
    {
        get { return (KeyValueConfigurationCollection)this["foo"]; }
    }
}

注入MyService类的服务使用如下:

    var configuration = _myConfigSection.Foo.AllKeys.ToDictionary(
        key => key,
        key => _configurationSection.Foo[key].Value);

这正在按预期工作,当我运行解决方案并在var configuration上设置中断时,我可以看到web.config按预期返回的值。

但是我现在正在尝试使用另一个项目复制相同的功能,但它使用Spring.NET for DI Framework。我是Spring的亲戚,所以我对此有些困难。

我在MVConfig中添加了与MVC项目相同的内容。

在服务层内MyService类我现在添加了以下内容:

public class MyService : IMyService
    {
        public MyConfigurationSection ConfigSection;

            var configuration = ConfigSection.Foo.AllKeys.ToDictionary(
                key => key,
                key => ConfigSection.Foo[key].Value);

   // rest of class removed for brevity

然后我在服务层有一个spring-Service xml,我尝试连接如下:

 <object id="myConfigSection" type="OtherProj.Core.Service.MyConfigurationSection, OtherProj.Core">
  </object>

  <object id="myService" type="OtherProj.Core.Service.MyService, OtherProj.Core">
    <property name="ConfigSection" ref="myConfigSection" />
  </object>

var configuration之前的另一个项目中,我尝试调用ConfigurationManager.GetSection("bar");但是当我运行项目并尝试点击MyService时,我得到一个异常说:

&#34;为bar创建配置节处理程序时出错:无法加载文件或程序集&#39; OtherProj.Core.Service,Culture = neutral&#39;或其中一个依赖项。该系统找不到指定的文件。 (D:\文件\ web.config第7行的完整路径)&#34;

我是否遗漏了这个依赖关系应该如何与Spring联系起来?

0 个答案:

没有答案