/// <summary> /// Adds an initialization callback for a given <typeparamref name="TTagHelper"/>. /// </summary> /// <remarks> /// The callback will be invoked on any <typeparamref name="TTagHelper"/> instance before the /// <see cref="ITagHelper.ProcessAsync(TagHelperContext, TagHelperOutput)"/> method is called. /// </remarks> /// <typeparam name="TTagHelper">The type of <see cref="ITagHelper"/> being initialized.</typeparam> /// <param name="builder">The <see cref="IMvcBuilder"/> instance this method extends.</param> /// <param name="initialize">An action to initialize the <typeparamref name="TTagHelper"/>.</param> /// <returns>The <see cref="IMvcBuilder"/> instance this method extends.</returns> public static IMvcBuilder InitializeTagHelper <TTagHelper>( [NotNull] this IMvcBuilder builder, [NotNull] Action <TTagHelper, ViewContext> initialize) where TTagHelper : ITagHelper { var initializer = new TagHelperInitializer <TTagHelper>(initialize); builder.Services.AddInstance(typeof(ITagHelperInitializer <TTagHelper>), initializer); return(builder); }
/// <summary> /// Adds an initialization callback for a given <typeparamref name="TTagHelper"/>. /// </summary> /// <remarks> /// The callback will be invoked on any <typeparamref name="TTagHelper"/> instance before the /// <see cref="ITagHelper.ProcessAsync(TagHelperContext, TagHelperOutput)"/> method is called. /// </remarks> /// <typeparam name="TTagHelper">The type of <see cref="ITagHelper"/> being initialized.</typeparam> /// <param name="services">The <see cref="IServiceCollection"/> instance this method extends.</param> /// <param name="initialize">An action to initialize the <typeparamref name="TTagHelper"/>.</param> /// <returns>The <see cref="IServiceCollection"/> instance this method extends.</returns> public static IServiceCollection InitializeTagHelper <TTagHelper>( [NotNull] this IServiceCollection services, [NotNull] Action <TTagHelper, ViewContext> initialize) where TTagHelper : ITagHelper { var initializer = new TagHelperInitializer <TTagHelper>(initialize); services.AddInstance(typeof(ITagHelperInitializer <TTagHelper>), initializer); return(services); }
/// <summary> /// Adds an initialization callback for a given <typeparamref name="TTagHelper"/>. /// </summary> /// <remarks> /// The callback will be invoked on any <typeparamref name="TTagHelper"/> instance before the /// <see cref="ITagHelperComponent.ProcessAsync(TagHelperContext, TagHelperOutput)"/> method is called. /// </remarks> /// <typeparam name="TTagHelper">The type of <see cref="ITagHelper"/> being initialized.</typeparam> /// <param name="builder">The <see cref="IMvcCoreBuilder"/> instance this method extends.</param> /// <param name="initialize">An action to initialize the <typeparamref name="TTagHelper"/>.</param> /// <returns>The <see cref="IMvcCoreBuilder"/> instance this method extends.</returns> public static IMvcCoreBuilder InitializeTagHelper <TTagHelper>( this IMvcCoreBuilder builder, Action <TTagHelper, ViewContext> initialize) where TTagHelper : ITagHelper { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (initialize == null) { throw new ArgumentNullException(nameof(initialize)); } var initializer = new TagHelperInitializer <TTagHelper>(initialize); builder.Services.AddSingleton(typeof(ITagHelperInitializer <TTagHelper>), initializer); return(builder); }