首页 > 解决方案 > 如何在 HttpHandler 中获取 UmbracoHelper?

问题描述

在 Umbraco 7 中,您可以使用UmbracoContext.EnsureContext()一些技巧来获取UmbracoHelperUmbraco 上下文的外部,例如在 HttpHandler 中。在 Umbraco 8UmbracoContext.EnsureContext()中已被删除,那么我们现在该怎么做呢?

具体来说,我想在我的 HttpHandler 中获取根节点,例如

var helper = CreateUmbracoHelper();
var root = helper.ContentAtRoot().First();

但我不知道如何实现CreateUmbracoHelper().

标签: umbraco8

解决方案


事实证明,使用 DependencyResolver 非常简单。这就是我所拥有的,而且效果很好。

var factory = DependencyResolver.Current.GetService<IUmbracoContextFactory>();
using (factory.EnsureUmbracoContext())
{
    var helper = DependencyResolver.Current.GetService<UmbracoHelper>();
    var websiteNode = helper.ContentAtRoot().Single() as HomePage;
    // etc
}

推荐阅读