Add API to configure CircuitOptions (#11166)

* Add API to configure CircuitOptions
This commit is contained in:
Pranav K 2019-06-17 09:00:45 -07:00 committed by GitHub
parent b47b3e5ac6
commit 17c7ea95a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 4 deletions

View File

@ -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<Microsoft.AspNetCore.Components.Server.CircuitOptions> 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<Microsoft.AspNetCore.Components.Server.CircuitOptions> configure) { throw null; }
public static Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder AddHubOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder builder, System.Action<Microsoft.AspNetCore.SignalR.HubOptions> configure) { throw null; }
}
}

View File

@ -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.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
/// <param name="configure">A callback to configure <see cref="CircuitOptions"/>.</param>
/// <returns>An <see cref="IServerSideBlazorBuilder"/> that can be used to further customize the configuration.</returns>
public static IServerSideBlazorBuilder AddServerSideBlazor(this IServiceCollection services)
public static IServerSideBlazorBuilder AddServerSideBlazor(this IServiceCollection services, Action<CircuitOptions> configure = null)
{
var builder = new DefaultServerSideBlazorBuilder(services);
@ -76,6 +78,11 @@ namespace Microsoft.Extensions.DependencyInjection
services.AddScoped<IComponentContext, RemoteComponentContext>();
services.AddScoped<AuthenticationStateProvider, FixedAuthenticationStateProvider>();
if (configure != null)
{
services.Configure<CircuitOptions>(configure);
}
return builder;
}

View File

@ -10,8 +10,31 @@ namespace Microsoft.Extensions.DependencyInjection
/// <summary>
/// Provides options for configuring Server-Side Blazor.
/// </summary>
public static class ServerSizeBlazorBuilderExtensions
public static class ServerSideBlazorBuilderExtensions
{
/// <summary>
/// Adds options to configure circuits.
/// </summary>
/// <param name="builder">The <see cref="IServerSideBlazorBuilder"/>.</param>
/// <param name="configure">A callback to configure <see cref="CircuitOptions"/>.</param>
/// <returns>The <see cref="IServerSideBlazorBuilder"/>.</returns>
public static IServerSideBlazorBuilder AddCircuitOptions(this IServerSideBlazorBuilder builder, Action<CircuitOptions> configure)
{
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
if (configure == null)
{
throw new ArgumentNullException(nameof(configure));
}
builder.Services.Configure<CircuitOptions>(configure);
return builder;
}
/// <summary>
/// Adds hub options for the configuration of the SignalR Hub used by Server-Side Blazor.
/// </summary>