From 17c7ea95a24c001386ad29d6864c4bd9c814bfe0 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Mon, 17 Jun 2019 09:00:45 -0700 Subject: [PATCH] Add API to configure CircuitOptions (#11166) * Add API to configure CircuitOptions --- ...NetCore.Components.Server.netcoreapp3.0.cs | 5 ++-- .../ComponentServiceCollectionExtensions.cs | 9 ++++++- ...s => ServerSideBlazorBuilderExtensions.cs} | 25 ++++++++++++++++++- 3 files changed, 35 insertions(+), 4 deletions(-) rename src/Components/Server/src/DependencyInjection/{ServerSizeBlazorBuilderExtensions.cs => ServerSideBlazorBuilderExtensions.cs} (57%) diff --git a/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.netcoreapp3.0.cs b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.netcoreapp3.0.cs index 91d7621b0f..37c0af00e2 100644 --- a/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.netcoreapp3.0.cs +++ b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.netcoreapp3.0.cs @@ -95,14 +95,15 @@ namespace Microsoft.Extensions.DependencyInjection { public static partial class ComponentServiceCollectionExtensions { - public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddServerSideBlazor(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) { throw null; } + public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddServerSideBlazor(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure = null) { throw null; } } public partial interface IServerSideBlazorBuilder { Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; } } - public static partial class ServerSizeBlazorBuilderExtensions + public static partial class ServerSideBlazorBuilderExtensions { + public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddCircuitOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder builder, System.Action configure) { throw null; } public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddHubOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder builder, System.Action configure) { throw null; } } } diff --git a/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs b/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs index 31cdcce444..63db99ed44 100644 --- a/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs +++ b/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Routing; @@ -23,8 +24,9 @@ namespace Microsoft.Extensions.DependencyInjection /// Adds Server-Side Blazor services to the service collection. /// /// The . + /// A callback to configure . /// An that can be used to further customize the configuration. - public static IServerSideBlazorBuilder AddServerSideBlazor(this IServiceCollection services) + public static IServerSideBlazorBuilder AddServerSideBlazor(this IServiceCollection services, Action configure = null) { var builder = new DefaultServerSideBlazorBuilder(services); @@ -76,6 +78,11 @@ namespace Microsoft.Extensions.DependencyInjection services.AddScoped(); services.AddScoped(); + if (configure != null) + { + services.Configure(configure); + } + return builder; } diff --git a/src/Components/Server/src/DependencyInjection/ServerSizeBlazorBuilderExtensions.cs b/src/Components/Server/src/DependencyInjection/ServerSideBlazorBuilderExtensions.cs similarity index 57% rename from src/Components/Server/src/DependencyInjection/ServerSizeBlazorBuilderExtensions.cs rename to src/Components/Server/src/DependencyInjection/ServerSideBlazorBuilderExtensions.cs index 4ed3a8aff3..ba786d9350 100644 --- a/src/Components/Server/src/DependencyInjection/ServerSizeBlazorBuilderExtensions.cs +++ b/src/Components/Server/src/DependencyInjection/ServerSideBlazorBuilderExtensions.cs @@ -10,8 +10,31 @@ namespace Microsoft.Extensions.DependencyInjection /// /// Provides options for configuring Server-Side Blazor. /// - public static class ServerSizeBlazorBuilderExtensions + public static class ServerSideBlazorBuilderExtensions { + /// + /// Adds options to configure circuits. + /// + /// The . + /// A callback to configure . + /// The . + public static IServerSideBlazorBuilder AddCircuitOptions(this IServerSideBlazorBuilder builder, Action configure) + { + if (builder == null) + { + throw new ArgumentNullException(nameof(builder)); + } + + if (configure == null) + { + throw new ArgumentNullException(nameof(configure)); + } + + builder.Services.Configure(configure); + + return builder; + } + /// /// Adds hub options for the configuration of the SignalR Hub used by Server-Side Blazor. ///