码迷,mamicode.com
首页 > 其他好文 > 详细

nopCommerce开发者指南(四):控制反转和依赖注入

时间:2015-04-02 13:16:46      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

原文链接:http://docs.nopcommerce.com/display/nc/Inversion+of+Control+and+Dependency+Injection

翻译 by:yersans,如有不妥,敬请指正,博主邮箱:zhanglei0591@qq.com。转载请注明出处。

 

控制反转和依赖注入是在程序中分离依赖的两种相关的方式。控制反转( Inversion of Control (IoC) )表示,一个对象不创建它所需依赖的其他对象。取而代之的是,它们通过外部源码获取所需对象。依赖注入( Dependency Injection (DI) )表示,它不需要对象干预,通常是通过一个框架组件以传入构造参数和设置属性的方式来实现。Martin Fowler 对依赖注入或控制反转有非常好的阐释,在这里我不想重复他的工作,你可以点击这里查看他的文章。nopCommerce 使用Autofac库作为IoC 容器。一个service类对应并实现一个相应的接口,同时你需要在所有实现了IDependencyRegistrar接口的类中注册它们。

 

 public class DependencyRegistrar : IDependencyRegistrar
    {
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder)
        {
            builder.Register(c => c.Resolve<HttpContextBase>().Request)
                .As<HttpRequestBase>()
                .InstancePerLifetimeScope();

            ...
        }
    }

你可以根据需要创建任意多个注册类。每个实现了IDependencyRegistrar 接口的类都有一个Order 属性。它允许你替换已有的依赖。如果你要重写nopCommerce 依赖,只需吧它的Order属性设为大于0的数即可。因为nopCommerce 会对依赖类进行排序,然后按照降序的顺序运行它们。序号越高的对象越晚被注册。

nopCommerce开发者指南(四):控制反转和依赖注入

标签:

原文地址:http://www.cnblogs.com/yersans/p/4386522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!