我有一个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联系起来?