我们来看IRouteBuilder的定义:
public interface IRouteBuilder { IRouter DefaultHandler { get; set; } IServiceProvider ServiceProvider { get; } IList<IRouter> Routes { get; } IRouter Build(); }
一个默认的IRouter对象,一个Build方法,一个IRouter集合和一个获取服务对象IServiceProvider。
我们进一步看IRouteBuilder的实现RouterBuilder:
public class RouteBuilder : IRouteBuilder { public RouteBuilder() { Routes = new List<IRouter>(); } public IRouter DefaultHandler { get; set; } public IServiceProvider ServiceProvider { get; set; } public IList<IRouter> Routes { get; private set; } public IRouter Build() { var routeCollection = new RouteCollection(); foreach (var route in Routes) { routeCollection.Add(route); } return routeCollection; } }