最终,我想做的是访问,CacheSettingsPart
以便可以以编程方式将一些被忽略的URL添加到输出缓存配置中。
相关的管理员已经通过以下方式实现了这一目标:
var settings = Services.WorkContext.CurrentSite.As<CacheSettingsPart>();
settings.IgnoredUrls = model.IgnoredUrls;
我需要为我自己的方法类似,但是当我尝试和注射IOrchardServices
的WorkContext
是null
,这意味着我没有访问CurrentSite
。
我需要使用替代方法或理想情况下实现CurrentSite
/CacheSettingsPart
修改我的方法的建议IgnoredUrls
。
var query = Services.ContentManager.Query<CacheSettingsPart>();
var cacheSettingsPart = query.List().First();
以上似乎给了我我需要的东西,现在我将测试修改是否IgnoredUrls
持续。
据我所知,尚未在运行迁移时创建WorkContext。
您可以按照建议的方式获得第一个SettingsPart-它可能不用于当前站点,但是如果您有多个租户,那么我认为您可能会遇到麻烦。
一种替代方法是注入ISiteService
您的迁移类。
然后你可以做
var site = _siteService.GetSiteSettings();
var cacheSettings = site.As<CacheSettingsPart>();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句