Skip to content

Commit 208955c

Browse files
wangronghualiuhaoyang
authored andcommitted
便于与structuremap进行集成,将代理包装核心部分独立出来供外部调用 (#132)
* 1 * 1
1 parent 08d1273 commit 208955c

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

extras/src/AspectCore.Extensions.DependencyInjection/AspectCore.Extensions.DependencyInjection.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<TargetFramework>netstandard2.0</TargetFramework>
1414
</PropertyGroup>
1515
<ItemGroup>
16-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />
16+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.1.1" />
1717
</ItemGroup>
1818
<ItemGroup>
1919
<ProjectReference Include="..\..\..\core\src\AspectCore.Core\AspectCore.Core.csproj" />

extras/src/AspectCore.Extensions.DependencyInjection/ServiceCollectionBuildExtensions.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@
77
using AspectCore.Injector;
88
using Microsoft.Extensions.DependencyInjection;
99
using Microsoft.Extensions.DependencyInjection.Extensions;
10+
using System.Collections.Generic;
11+
using System.Linq;
1012

1113
namespace AspectCore.Extensions.DependencyInjection
1214
{
1315
public static class ServiceCollectionBuildExtensions
1416
{
1517
public static IServiceProvider BuildAspectCoreServiceProvider(this IServiceCollection services)
18+
{
19+
return services.AddDynamicProxyCore().BuildServiceProvider(false);
20+
}
21+
public static IServiceCollection AddDynamicProxyCore(this IServiceCollection services)
1622
{
1723
if (services == null)
1824
{
@@ -24,8 +30,7 @@ public static IServiceProvider BuildAspectCoreServiceProvider(this IServiceColle
2430
var serviceValidator = new ServiceValidator(serviceProvider.GetRequiredService<IAspectValidatorBuilder>());
2531
var proxyTypeGenerator = serviceProvider.GetRequiredService<IProxyTypeGenerator>();
2632

27-
var dynamicProxyServices = new ServiceCollection();
28-
33+
IServiceCollection dynamicProxyServices = new ServiceCollection();
2934
foreach (var service in services)
3035
{
3136
if (serviceValidator.TryValidate(service, out Type implementationType))
@@ -36,9 +41,10 @@ public static IServiceProvider BuildAspectCoreServiceProvider(this IServiceColle
3641

3742
serviceProvider.Dispose();
3843

39-
return dynamicProxyServices.BuildServiceProvider(false);
44+
return dynamicProxyServices;
4045
}
4146

47+
4248
private static ServiceDescriptor MakeProxyService(ServiceDescriptor descriptor, Type implementationType, IProxyTypeGenerator proxyTypeGenerator)
4349
{
4450
var serviceTypeInfo = descriptor.ServiceType.GetTypeInfo();

0 commit comments

Comments
 (0)