随笔- 60  文章- 14  评论- 17 

Autofac.Configuration程序集的作用:通过配置来实现依赖注入。

示例:

1.配置内容

<configuration>
  <configSections>
    <section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration"/>
  </configSections>
  <autofac defaultAssembly="MyAutofac.Services">
    <components>
      <component type="MyAutofac.Services.SqlDatabase, MyAutofac.Services"
                 service="MyAutofac.Services.IDatabase"/>
    </components>
  </autofac>
</configuration>

2.代码调用

[TestMethod]
        public void SelectThirdTest()
        {
            var builder = new ContainerBuilder();
            builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
            ////通过Lampda表达式注册DatabaseManager实例
            builder.Register(c => new DatabaseManager(c.Resolve<IDatabase>()));
            string result = null;
            using (var container = builder.Build())
            {
                var manager = container.Resolve<DatabaseManager>();
                result = manager.Search("SELECT * FORM USER");
            }
            Assert.IsNotNull(result);
        }


问题:

在使用过程中,通过Nuget获取最新的稳定版本Autofac.Configuration3.3.0和Autofac3.5.2,却不能正常运行。

过程描述如下:

1.使用Autofac.Configuration 3.3.0时,参考https://www.nuget.org/packages/Autofac.Configuration/3.3.0中的说明,

Dependencies[Autofac (≥ 3.3.1 && < 4.0.0)],因此使用最新的Autofac 3.5.2。编译通过,但实际运行时,会提示缺乏对Autofac 3.3.0的引用。
2.将Autofac 3.5.2替换为Autofac 3.3.0,编译报错。

3.将Autofac.Configuration 3.3.0替换为Autofac.Configuration 3.2.0,编译通过,运行通过。

Demo下载 http://download.csdn.net/detail/heoo442/9134319

 posted on 2016-06-15 16:40  heoo  阅读(...)  评论(...编辑  收藏