Skip to content

Commit 4fe98b3

Browse files
committed
Added extension
1 parent 202e060 commit 4fe98b3

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

src/ServiceProviderExtensions.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Microsoft.Extensions.DependencyInjection;
2+
using System;
3+
4+
namespace Unity.Microsoft.DependencyInjection
5+
{
6+
public static class ServiceProviderExtensions
7+
{
8+
9+
/// <summary>
10+
/// Creates a <see cref="ServiceProvider"/> containing services from the provided <see cref="IServiceCollection"/>
11+
/// optionaly enabling scope validation.
12+
/// </summary>
13+
/// <param name="services">The <see cref="IServiceCollection"/> containing service descriptors.</param>
14+
/// <param name="validateScopes">
15+
/// <c>true</c> to perform check verifying that scoped services never gets resolved from root provider; otherwise <c>false</c>.
16+
/// </param>
17+
/// <returns>The <see cref="ServiceProvider"/>.</returns>
18+
public static IServiceProvider BuildServiceProvider(this IServiceCollection services, bool validateScopes = false)
19+
{
20+
return new ServiceProvider(new UnityContainer().AddNewExtension<MdiExtension>()
21+
.AddServices(services));
22+
}
23+
}
24+
}

tests/Microsoft.DependencyInjection.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net47</TargetFramework>
4+
<TargetFramework>netcoreapp2.0</TargetFramework>
55
<IsPackable>false</IsPackable>
66
<RootNamespace>Unity.Microsoft.DependencyInjection.Tests</RootNamespace>
77
</PropertyGroup>
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
using System;
2-
using System.Collections;
3-
using System.Collections.Generic;
4-
using System.Linq;
52
using Microsoft.Extensions.DependencyInjection;
63
using Microsoft.Extensions.DependencyInjection.Specification;
74
using Microsoft.Extensions.DependencyInjection.Specification.Fakes;
@@ -13,7 +10,7 @@ public class Tests : DependencyInjectionSpecificationTests
1310
{
1411
protected override IServiceProvider CreateServiceProvider(IServiceCollection serviceCollection)
1512
{
16-
return ServiceProvider.ConfigureServices(serviceCollection);
13+
return serviceCollection.BuildServiceProvider();
1714
}
1815
}
1916
}

0 commit comments

Comments
 (0)