MyRoute类由IRouteProvider创建。我需要根据某些设置管理路线。此设置存储在单独的表中,我有两个选项来获取它们。
首先。从使用IRepository获取它们的站点内容workContext.CurrentSite.As<MySettings>()
获取设置
但是在RouteBase.GetRouteData方法_workContextAccessor.GetContext()
中总是返回null
二。直接从我的服务_myService.GetList()
获取设置,该服务使用IRepository来获取它们
但IRepository<T>.Table
属性有时会出现错误,即mssql的连接未设置且站点停止工作
答案 0 :(得分:0)
我从Orchard.Mvc.Routes.HttpHandler.ProcessRequest中复制了一些代码,这段代码得到了有效(非空)的工作上下文。
using (var wcs = _workContextAccessor.CreateWorkContextScope(new HttpContextWrapper(httpContext.ApplicationInstance.Context)))
{
var workContext = wcs.WorkContext;
可能我不应该使用它?实际上它做了什么?