如何从RouteBase类派生的类中获取站点设置

时间:2015-03-13 10:28:15

标签: orchardcms

MyRoute类由IRouteProvider创建。我需要根据某些设置管理路线。此设置存储在单独的表中,我有两个选项来获取它们。

首先。从使用IRepository获取它们的站点内容workContext.CurrentSite.As<MySettings>()获取设置 但是在RouteBase.GetRouteData方法_workContextAccessor.GetContext()中总是返回null

二。直接从我的服务_myService.GetList()获取设置,该服务使用IRepository来获取它们 但IRepository<T>.Table属性有时会出现错误,即mssql的连接未设置且站点停止工作

1 个答案:

答案 0 :(得分:0)

我从Orchard.Mvc.Routes.HttpHandler.ProcessRequest中复制了一些代码,这段代码得到了有效(非空)的工作上下文。

using (var wcs = _workContextAccessor.CreateWorkContextScope(new HttpContextWrapper(httpContext.ApplicationInstance.Context)))
{
    var workContext = wcs.WorkContext;

可能我不应该使用它?实际上它做了什么?