zoukankan      html  css  js  c++  java
  • nopCommerce开发者指南(四):控制反转和依赖注入

    原文链接: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 会对依赖类进行排序,然后按照降序的顺序运行它们。序号越高的对象越晚被注册。
  • 相关阅读:
    最小生成树+BFS J
    Noip 2016
    舒适的路线 (code[vs] 1001)
    拦截导弹 (加了神奇的位运算)
    逃出克隆岛 (codevs 2059)
    回家(洛谷 P1592)
    热浪
    城堡
    笔记 (一道正解思路巧妙的题)
    脱水缩合
  • 原文地址:https://www.cnblogs.com/yersans/p/4386522.html
Copyright © 2011-2022 走看看