public ITagHelper Create(ITagHelperFactory factory, ViewContext context, FilterArguments arguments, out TagHelperAttributeList contextAttributes, out TagHelperAttributeList outputAttributes) { contextAttributes = new TagHelperAttributeList(); outputAttributes = new TagHelperAttributeList(); ITagHelper tagHelper; if (_activatorByService != null) { tagHelper = _activatorByService(context); } else { tagHelper = _activatorByFactory(factory, context); } foreach (var name in arguments.Names) { var propertyName = name.ToPascalCaseUnderscore(); var found = false; if (_setters.TryGetValue(propertyName, out var setter)) { try { setter(tagHelper, arguments[name]); found = true; } catch (ArgumentException e) { throw new ArgumentException("Incorrect value type assigned to a tag.", name, e); } } var attribute = new TagHelperAttribute(name.Replace('_', '-'), arguments[name].ToObjectValue()); contextAttributes.Add(attribute); if (!found) { outputAttributes.Add(attribute); } } return(tagHelper); }
public ITagHelper Create(ITagHelperFactory factory, ViewContext context, FilterArguments arguments, out TagHelperAttributeList contextAttributes, out TagHelperAttributeList outputAttributes) { contextAttributes = new TagHelperAttributeList(); outputAttributes = new TagHelperAttributeList(); var tagHelper = _activator(factory, context); foreach (var name in arguments.Names) { var propertyName = Filters.LiquidViewFilters.LowerKebabToPascalCase(name); var found = false; if (_setters.TryGetValue(propertyName, out var setter)) { try { setter(tagHelper, arguments[name]); found = true; } catch (ArgumentException e) { throw new ArgumentException("Incorrect value type assigned to a tag.", name, e); } } var attr = new TagHelperAttribute(name.Replace("_", "-"), arguments[name].ToObjectValue()); contextAttributes.Add(attr); if (!found) { outputAttributes.Add(attr); } } return(tagHelper); }
public RazorHotReload( IRazorViewEngine razorViewEngine, IRazorPageActivator razorPageActivator, ITagHelperFactory tagHelperFactory, IViewCompilerProvider viewCompilerProvider, ITagHelperComponentPropertyActivator tagHelperComponentPropertyActivator, ApplicationPartManager applicationPartManager) { // For Razor view services, use the service locator pattern because they views not be registered by default. _razorCompiledItemFeatureProvider = applicationPartManager.FeatureProviders.OfType <RazorCompiledItemFeatureProvider>().FirstOrDefault(); if (viewCompilerProvider is DefaultViewCompiler defaultViewCompiler) { _defaultViewCompiler = defaultViewCompiler; } if (razorViewEngine.GetType() == typeof(RazorViewEngine)) { _razorViewEngine = (RazorViewEngine)razorViewEngine; } if (razorPageActivator.GetType() == typeof(RazorPageActivator)) { _razorPageActivator = (RazorPageActivator)razorPageActivator; } if (tagHelperFactory is DefaultTagHelperFactory defaultTagHelperFactory) { _defaultTagHelperFactory = defaultTagHelperFactory; } if (tagHelperComponentPropertyActivator is TagHelperComponentPropertyActivator defaultTagHelperComponentPropertyActivator) { _tagHelperComponentPropertyActivator = defaultTagHelperComponentPropertyActivator; } }
public LiquidTagHelperFactory(ApplicationPartManager partManager, ITagHelperFactory factory) { _partManager = partManager; _factory = factory; }
public static ITagHelper CreateTagHelper(ITagHelperFactory tagHelperFactory, ViewContext viewContext) { return(tagHelperFactory.CreateTagHelper <T>(viewContext)); }
public MediaTagHelper(ITagHelperFactory tagHelperFactory) { _tagHelperFactory = tagHelperFactory; }
public ITagHelper Create(ITagHelperFactory factory, ViewContext context, FilterArguments arguments, out TagHelperAttributeList contextAttributes, out TagHelperAttributeList outputAttributes) { contextAttributes = new TagHelperAttributeList(); outputAttributes = new TagHelperAttributeList(); ITagHelper tagHelper; if (_activatorByService != null) { tagHelper = _activatorByService(context); } else { tagHelper = _activatorByFactory(factory, context); } var expresionProvider = context.HttpContext.RequestServices.GetRequiredService <ModelExpressionProvider>(); var viewData = context.ViewData as ViewDataDictionary <object>; if (viewData == null) { viewData = new ViewDataDictionary <object>(context.ViewData); } foreach (var name in arguments.Names) { var propertyName = name.ToPascalCaseUnderscore(); var dictionaryName = String.Empty; var dictionaryKey = String.Empty; if (!_setters.TryGetValue(propertyName, out var setter)) { var index = name.LastIndexOf('_'); if (index > -1) { dictionaryName = name.Substring(0, index + 1); dictionaryKey = name.Substring(index + 1); if (dictionaryName.Length > 0 && dictionaryKey.Length > 0) { _setters.TryGetValue(dictionaryName, out setter); } } } var found = false; if (setter != null) { try { setter(tagHelper, expresionProvider, viewData, dictionaryKey, arguments[name]); found = true; } catch (ArgumentException e) { throw new ArgumentException("Incorrect value type assigned to a tag.", name, e); } } var attribute = new TagHelperAttribute(name.Replace('_', '-'), arguments[name].ToObjectValue()); contextAttributes.Add(attribute); if (!found) { outputAttributes.Add(attribute); } } return(tagHelper); }