刚开始研究nop的同学要找到里面一个Url对应Controller相关代码,可能会有点晕。因为NopCommerce为了对seo友好,对其Url做了一些处理,自定义了路由规则,同时为了支持插件机制,加了一些自己的类进行扩展。本文就来分析一个NopCommerce路由相关源码设计思路,同样我们也先来看看相关的类图:
一、核心类及类图
上面就是NopCommerce路由相关功能主要的类、接口及关系。有以下类:
1、NopEngine
2、NopEndpoints
3、ApplicationBuilderExtensions
4、EngineContext
5、IRoutePublisher、RoutePublisher
6、IRouteProvider、RouteProvider、GenericUrlRouteProvider
其中RoutePublisher是用来发布RouteProvider、GenericUrlRouteProvider里面配置的路由规则的,二者都有一个抽象的接口。接下来我们就来看看这些类或接口中代码是如何实现的。
二、代码介绍
1、RoutePublisher依赖注入配置
Nop.Web.Framework.Infrastructure.NopStartup类ConfigureServices方