nopCommerce开发者指南(四):控制反转和依赖注入
2015-04-02 12:07
120 查看
原文链接: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接口的类中注册它们。
翻译 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 会对依赖类进行排序,然后按照降序的顺序运行它们。序号越高的对象越晚被注册。
相关文章推荐
- [翻译]StructureMap 指南 – .NET中的依赖注入和控制反转
- StructureMap 指南 – .NET中的依赖注入和控制反转
- 【简译】关于依赖反转原则、控制反转和依赖注入的抽象的初学者指南
- Spring进阶之路(1)-Spring核心机制:依赖注入/控制反转
- 向依赖关系宣战——依赖倒置、控制反转和依赖注入辨析
- 一篇依赖倒置,控制反转,依赖注入好文
- 控制反转(ioc)和依赖注入 【很详细】
- 依赖注入和控制反转的理解,写的太好了。
- Spring入门--控制反转(IOC)与依赖注入(DI)
- Spring中的控制反转Ioc依赖注入DI的区别和联系
- Spring学习,依赖注入(DI)、控制反转(IoC)和面向切面(AOP)
- 控制反转(IOC)和依赖注入(DI)的区别
- 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程
- spring中的控制反转和依赖注入
- 关于依赖倒置,控制反转和依赖注入的趣谈
- Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)
- Spring之控制反转和依赖注入
- 工厂模式、控制反转及依赖注入
- MVC 依赖注入/控制反转
- 控制反转容器&依赖注入模式