代码改变世界

Autofac学习笔记

2015-09-03 23:04  一叶之秋愁上头  阅读(326)  评论(0)    收藏  举报

1. 下载地址:

  https://github.com/autofac/Autofac

2 . 官网:

  http://docs.autofac.org/en/latest/

3. 主要学习点:

  • Register方法

    1)    RegisterType是以注册类型;类型已知进行注册

      builder.RegisterType<类型 >(); 

 

    2)    Register是以Lampda方式进行注册;

      builder.Register(c => new DatabaseManager(c.Resolve<IDatabase>())); 

      此处蓝字部分等同构造函数

 

    3)    RegisterInstance是注册对象实例;已知一个实体类型与值 如:

      User user = new User { Id = 1, Name = "leepy" }; 

      builder.RegisterInstance(user).As<User>();

 

    4)    RegisterMoudle 是配置文件注册对象

      builder.RegisterModule(new ConfigurationSettingsReader("autofac"));

    未全部列完,以下没有弄

    5)    RegisterSource

    6)    RegisterComponent

    7)    RegisterDecorator

  • Reslove方法,主要是把Builder中注册的内容转换成真实的数据

 

4.  配置方法—(问题对于方法如何注入---正在寻找方法)

component属性包含如下:

type; service; instance-scope; instance-ownership; name; inject-properties

component子属性包含如下:

services; parameters;  properties; metadata

相关链接如下:

http://docs.autofac.org/en/latest/configuration/xml.html#id2

 

配置范例如下:

  <configSections>
    <section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration"/>
  </configSections>

  <!-- 此处开头要name 一致,引用程序集 -->
  <autofac defaultAssembly="ConsoleApplication1">
    <!-- 组件配置  -->
    <components>
      <!-- 单个组件配置 -->
      <component type="ConsoleApplication1.Teacher,ConsoleApplication1" service="ConsoleApplication1.IPerson">
        <!-- 构造函数 -->
        <parameters>
          <parameter name="name" value="LiuLvFeng"> </parameter>
        </parameters>
        <!-- 属性配置 -->
        <properties>
          <property name="Info" value="Teacher"> </property>
        </properties>
      </component>

 

 

5. 具体调用与使用

// 初始化容器
var builder = new ContainerBuilder();
// 注册类型
builder.RegisterType<ShowInfo>();
// 注册模型(读取配置文件来构造)
builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
// 容器生成
using (var build = builder.Build())
{
    // 分解出注册类型
    var shower = build.Resolve<ShowInfo>();
    // 调用类型的方法
    shower.DisplayInfo();  
}

 

6. 参考文件文章:

依赖注入框架Autofac的简单使用

http://www.cnblogs.com/liping13599168/archive/2011/07/16/2108209.html

Autofac实例—(需要添加一下引用就OK)

http://download.csdn.net/detail/xyz136299110/4378346#comment

 

7. 个人实例代码 点这里, 欢迎下载!