diff --git a/src/Microsoft.AspNetCore.Blazor.Browser/Microsoft.AspNetCore.Blazor.Browser.csproj b/src/Microsoft.AspNetCore.Blazor.Browser/Microsoft.AspNetCore.Blazor.Browser.csproj index e1da5ca8d4..d4336cde80 100644 --- a/src/Microsoft.AspNetCore.Blazor.Browser/Microsoft.AspNetCore.Blazor.Browser.csproj +++ b/src/Microsoft.AspNetCore.Blazor.Browser/Microsoft.AspNetCore.Blazor.Browser.csproj @@ -4,6 +4,10 @@ netstandard2.0 + + + + diff --git a/src/Microsoft.AspNetCore.Blazor.Browser/Services/DefaultBrowserServiceProvider.cs b/src/Microsoft.AspNetCore.Blazor.Browser/Services/DefaultBrowserServiceProvider.cs index 6d1780b9d5..0bfa8d0a9d 100644 --- a/src/Microsoft.AspNetCore.Blazor.Browser/Services/DefaultBrowserServiceProvider.cs +++ b/src/Microsoft.AspNetCore.Blazor.Browser/Services/DefaultBrowserServiceProvider.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 Microsoft.Extensions.DependencyInjection; using System; namespace Microsoft.AspNetCore.Blazor.Browser.Services @@ -11,10 +12,34 @@ namespace Microsoft.AspNetCore.Blazor.Browser.Services /// public class DefaultBrowserServiceProvider : IServiceProvider { + private readonly IServiceProvider _underlyingProvider; + + /// + /// Constructs an instance of . + /// + public DefaultBrowserServiceProvider(): this(null) + { + } + + /// + /// Constructs an instance of . + /// + /// A callback that can be used to configure the . + public DefaultBrowserServiceProvider(Action configure) + { + var serviceCollection = new ServiceCollection(); + AddDefaultServices(serviceCollection); + configure?.Invoke(serviceCollection); + _underlyingProvider = serviceCollection.BuildServiceProvider(); + } + /// public object GetService(Type serviceType) + => _underlyingProvider.GetService(serviceType); + + private void AddDefaultServices(ServiceCollection serviceCollection) { - throw new NotImplementedException(); + // TODO: Add default services for HttpClient, IUrlHelper, etc. } } }