架构研究一(autofac 注册路由 )

首先在非web 的project 里添加注册解析路由服务的代码:

// 我再web 里面添加后编译通过 ,运行出错,原因尚未找到

builder = new ContainerBuilder();
var container = builder.Build();
_container = container;

//we create new instance of ContainerBuilder
//because Build() or Update() method can only be called once on a ContainerBuilder.

//dependencies
builder = new ContainerBuilder();
builder.RegisterType<RoutePublisher>().As<IRoutePublisher>().SingleInstance();
builder.Update(container);
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

 然后 在global 里进行注册路由

public void RegisterRoutes(RouteCollection route) {
var Containe = new ContainerManager();
RouteConfig.RegisterRoutes(route);
//var routes = RouteTable.Routes;
var scope = Containe.Container.BeginLifetimeScope();
var routePublisher = Containe.Resolve<IRoutePublisher>("", scope);
routePublisher.RegisterRoutes(route);
}

路由就会在RouteTable.Routes 里出现

原文地址:https://www.cnblogs.com/luoye-chenxin/p/9133826.html