public HbsRenderer(IServiceProvider services, IHandlebars handlebars, IOptions <HandlebarsViewEngineOptions> options, IExpressionCache expressionCache) { _options = options.Value; _services = services.CreateScope().ServiceProvider; _expressionCache = expressionCache; _handlebars = handlebars; var helpersAction = _options.RegisterHelpers; if (helpersAction != null) { var helpers = new HelperList(); helpersAction.Invoke(helpers); foreach (var helper in helpers) { var h = _services.GetService(helper).Cast <HandlebarsBaseHelper>(); switch (h.HelperType) { case HelperType.HandlebarsHelper: _handlebars.RegisterHelper(h.HelperName, h.HandlebarsHelper); break; case HelperType.HandlebarsBlockHelper: _handlebars.RegisterHelper(h.HelperName, h.HandlebarsBlockHelper); break; default: throw new ArgumentOutOfRangeException(); } } } }
public HandlebarsViewEngine(IOptions <HandlebarsViewEngineOptions> optionsAccessor, IHbsRenderer renderer) { _options = optionsAccessor?.Value ?? throw new ArgumentNullException(nameof(optionsAccessor)); _renderer = renderer; }