首页 > 其他 > 详细

Autofac components组件 《第二篇》

时间:2014-03-20 06:13:33      阅读:405      评论:0      收藏:0      [点我收藏+]

一、组件的创建

  组件的创建有如下4种(延续第一篇的Demo,仅仅变动所贴出的代码)方式:

  1、类型创建RegisterType

  AutoFac能够通过反射检查一个类型,选择一个合适的构造函数,创造这个对象的实例。主要通过RegisterType<T>() 和 RegisterType(Type) 两个方法以这种方式建立。

  ContainerBuilder使用 As() 方法将Component封装成了服务使用。

        builder.RegisterType<AutoFacManager>();
        builder.RegisterType<Worker>().As<IPerson>();

  2、实例创建

     builder.RegisterInstance<AutoFacManager>(new AutoFacManager(new Worker()));

  3、Lambda表达式创建

  Lambda的方式也是Autofac通过反射的方式实现

        builder.Register(c => new AutoFacManager(c.Resolve<IPerson>()));
        builder.RegisterType<Worker>().As<IPerson>();

  4、程序集创建

        builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()); //在当前正在运行的程序集中找
        builder.RegisterType<Worker>().As<IPerson>();

 

Lambda表达式 : builder.Register(c=>new TaskController(c.Resolve<ITaskRepository>()));
一个类型 : builder.RegisterType<TaskController>();
一个预编译的 : builder.RegisterInstance(new TaskController());
包含实例类型的程序集 : builder.RegisterAssemblyTypes(controllerAssembly);

Autofac components组件 《第二篇》,布布扣,bubuko.com

Autofac components组件 《第二篇》

原文:http://www.cnblogs.com/kissdodog/p/3611799.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!