Nop关键技术点概述
2024-09-16 00:03:47
数据访问层
Nop.Data项目包含用于与数据库及其它数据存储交互的类和功能。Nop.Data类库帮助将数据访问逻辑和业务对象分离。Nop使用的是Entity Framework Code First方式。Code-First使得开发人员可以在源代码中定义实体(Nop中的核心实体定义在Nop.Core项目中),然后使用EF根据C#类生成数据库。这就是为什么称作Code-First。然后你还可以使用LINQ查询对象,这将被在后台转换成SQL并在数据库中执行。Nop使用a fluent code API 自定义持久化映射。可以从here or here了解code-first。
控制反转和依赖注入
Nop使用Autofac类库作为Ioc容器,一旦完成一个service和它实现的接口,需要在任何一个实现IDependencyRegistrar接口的类中注册(Nop.Core.Infrastructure.DependencyManagement )。比如,所有nop的核心service都在Nop.Web.Framework类库里的DendencyRegistrar类中被注册。
public class DependencyRegistrar : IDependencyRegistrar
{
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder)
{
builder.Register(c => c.Resolve<HttpContextBase>().Request)
.As<HttpRequestBase>()
.InstancePerHttpRequest(); ...
}
}
你可以根据需求创建多个dependency registrar 类。每个实现IDependencyRegistrar接口的类都有一个Order属性。它可用于替代现有依赖。要覆盖nop的依赖,将Order设置成大于0的值。nop按照order升序排序依赖类。值越大对象将被越晚注册。
如何注册新路由
最新文章
- Android 添加ActionBar Buttons
- JavaScript之web通信
- jsp原理
- python3 linux下安装
- PV 与 并发数 之间的故事
- 根据Expander的IsExpanded属性值的变化动态设计Control的size
- ";琳琅满屋";调查问卷 心得体会及结果分析
- 【每日scrum】NO.2
- DP 子序列问题
- WebAPI接口测试之matthewcv.WebApiTestClient
- 浅谈Linux系统的启动流程
- Android图像篇
- 苹果新的编程语言 Swift 语言进阶(一)--综述
- MySQL之 InnoDB记录结构(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)
- 即将上线的Kafka服务器面临的一系列填坑笔记
- Java反射的用法
- 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》
- sql经常出现死锁解决办法
- python学习(25) BeautifulSoup介绍和实战
- 学号20155308 2016-2017-2 《Java程序设计》第7周学习总结