umbraco8 - 如何在 HttpHandler 中获取 UmbracoHelper?
问题描述
在 Umbraco 7 中,您可以使用UmbracoContext.EnsureContext()
一些技巧来获取UmbracoHelper
Umbraco 上下文的外部,例如在 HttpHandler 中。在 Umbraco 8UmbracoContext.EnsureContext()
中已被删除,那么我们现在该怎么做呢?
具体来说,我想在我的 HttpHandler 中获取根节点,例如
var helper = CreateUmbracoHelper();
var root = helper.ContentAtRoot().First();
但我不知道如何实现CreateUmbracoHelper()
.
解决方案
事实证明,使用 DependencyResolver 非常简单。这就是我所拥有的,而且效果很好。
var factory = DependencyResolver.Current.GetService<IUmbracoContextFactory>();
using (factory.EnsureUmbracoContext())
{
var helper = DependencyResolver.Current.GetService<UmbracoHelper>();
var websiteNode = helper.ContentAtRoot().Single() as HomePage;
// etc
}
推荐阅读
- javascript - React Native 上的 XSLT 处理器(从 XML 到 HTML)
- javascript - 检查选择器的 innerText 是否包含子字符串
- nestjs - NestJS + 类验证器,为什么错误数组是空的?
- postgresql - 从postgresql 10中的日期列生成的列
- docker - 尝试下载图像时,Kitematic 卡在连接到 Docker 集线器
- java - Android图像意图不显示图像
- c# - MemoryStream 可以减少它的容量吗?
- python - 为什么分别使用requests和aiohttp会得到不同的结果?
- ios - CocoaPods 停止安装 Firebase/Analytics 并出现错误
- r - 按条件合并两个 CSV