Skip to content

Commit 783c1df

Browse files
committed
调整GetConfiguration命名空间
1 parent 29967ed commit 783c1df

3 files changed

Lines changed: 95 additions & 63 deletions

File tree

src/Cuture.Extensions.Modularity.Hosting/Extensions/IServiceCollection/ConfigurationServiceCollectionExtensions.cs

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,68 +3,68 @@
33
using Cuture.Extensions.Modularity.Internal;
44

55
using Microsoft.Extensions.Configuration;
6+
using Microsoft.Extensions.DependencyInjection;
67
using Microsoft.Extensions.Hosting;
78

8-
namespace Microsoft.Extensions.DependencyInjection
9+
namespace Cuture.Extensions.Modularity;
10+
11+
/// <summary>
12+
///
13+
/// </summary>
14+
public static class ConfigurationServiceCollectionExtensions
915
{
16+
#region Public 方法
17+
1018
/// <summary>
11-
///
19+
/// 从<see cref="IServiceCollection"/>中获取<see cref="IConfiguration"/>
1220
/// </summary>
13-
public static class ConfigurationServiceCollectionExtensions
21+
/// <param name="services"></param>
22+
/// <returns></returns>
23+
public static IConfiguration? GetConfiguration(this IServiceCollection services)
1424
{
15-
#region Public 方法
16-
17-
/// <summary>
18-
/// 从<see cref="IServiceCollection"/>中获取<see cref="IConfiguration"/>
19-
/// </summary>
20-
/// <param name="services"></param>
21-
/// <returns></returns>
22-
public static IConfiguration? GetConfiguration(this IServiceCollection services)
25+
if (services.TryGetObjectAccessorValue<IConfigurationContainer>(out var iConfigurationContainer)
26+
&& iConfigurationContainer is not null)
2327
{
24-
if (services.TryGetObjectAccessorValue<IConfigurationContainer>(out var iConfigurationContainer)
25-
&& iConfigurationContainer is not null)
26-
{
27-
return iConfigurationContainer.Value;
28-
}
29-
var hostBuilderContext = services.GetSingletonServiceInstance<HostBuilderContext>();
30-
31-
return hostBuilderContext?.Configuration as IConfigurationRoot
32-
?? services.GetSingletonServiceInstance<IConfiguration>()
33-
?? (services.TryGetObjectAccessorValue<IConfiguration>(out var configuration) ? configuration : null);
28+
return iConfigurationContainer.Value;
3429
}
30+
var hostBuilderContext = services.GetSingletonServiceInstance<HostBuilderContext>();
31+
32+
return hostBuilderContext?.Configuration as IConfigurationRoot
33+
?? services.GetSingletonServiceInstance<IConfiguration>()
34+
?? (services.TryGetObjectAccessorValue<IConfiguration>(out var configuration) ? configuration : null);
35+
}
3536

36-
/// <inheritdoc cref="GetConfiguration(IServiceCollection)"/>
37-
public static IConfiguration GetRequiredConfiguration(this IServiceCollection services) => services.GetConfiguration()
38-
?? throw new InvalidOperationException($"Not found {nameof(IConfiguration)} in serviceCollection.");
37+
/// <inheritdoc cref="GetConfiguration(IServiceCollection)"/>
38+
public static IConfiguration GetRequiredConfiguration(this IServiceCollection services) => services.GetConfiguration()
39+
?? throw new InvalidOperationException($"Not found {nameof(IConfiguration)} in serviceCollection.");
3940

40-
/// <summary>
41-
/// 将用于<see cref="GetConfiguration(IServiceCollection)"/>获取的<see cref="IConfiguration"/>添加到<paramref name="services"/>中
42-
/// </summary>
43-
/// <param name="services"></param>
44-
/// <param name="configuration"></param>
45-
/// <returns>是否为新添加</returns>
46-
public static bool SetConfiguration(this IServiceCollection services, IConfiguration configuration)
41+
/// <summary>
42+
/// 将用于<see cref="GetConfiguration(IServiceCollection)"/>获取的<see cref="IConfiguration"/>添加到<paramref name="services"/>中
43+
/// </summary>
44+
/// <param name="services"></param>
45+
/// <param name="configuration"></param>
46+
/// <returns>是否为新添加</returns>
47+
public static bool SetConfiguration(this IServiceCollection services, IConfiguration configuration)
48+
{
49+
if (services.TryGetObjectAccessor<IConfigurationContainer>(out var container)
50+
&& container is not null)
4751
{
48-
if (services.TryGetObjectAccessor<IConfigurationContainer>(out var container)
49-
&& container is not null)
52+
if (container.Value is null)
5053
{
51-
if (container.Value is null)
52-
{
53-
container.Value = new(configuration);
54-
}
55-
else
56-
{
57-
container.Value.Value = configuration;
58-
}
59-
return false;
54+
container.Value = new(configuration);
6055
}
6156
else
6257
{
63-
services.AddObjectAccessor<IConfigurationContainer>(new(configuration));
64-
return true;
58+
container.Value.Value = configuration;
6559
}
60+
return false;
61+
}
62+
else
63+
{
64+
services.AddObjectAccessor<IConfigurationContainer>(new(configuration));
65+
return true;
6666
}
67-
68-
#endregion Public 方法
6967
}
68+
69+
#endregion Public 方法
7070
}

src/Cuture.Extensions.Modularity.Hosting/Extensions/IServiceCollection/HostBuilderServiceCollectionExtensions.cs

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,56 @@
22

33
using Cuture.Extensions.Modularity.Internal;
44

5+
using Microsoft.Extensions.DependencyInjection;
56
using Microsoft.Extensions.Hosting;
67

7-
namespace Microsoft.Extensions.DependencyInjection
8+
namespace Cuture.Extensions.Modularity;
9+
10+
/// <summary>
11+
///
12+
/// </summary>
13+
public static class HostBuilderServiceCollectionExtensions
814
{
15+
#region Public 方法
16+
917
/// <summary>
10-
///
18+
/// 从<see cref="IServiceCollection"/>中获取<see cref="IHostBuilder"/>
1119
/// </summary>
12-
public static class HostBuilderServiceCollectionExtensions
13-
{
14-
#region Public 方法
15-
16-
/// <summary>
17-
/// 从<see cref="IServiceCollection"/>中获取<see cref="IHostBuilder"/>
18-
/// </summary>
19-
/// <param name="services"></param>
20-
/// <returns></returns>
21-
public static IHostBuilder? GetHostBuilder(this IServiceCollection services) => services.GetObjectAccessorValue<IHostBuilderContainer>()?.Value;
20+
/// <param name="services"></param>
21+
/// <returns></returns>
22+
public static IHostBuilder? GetHostBuilder(this IServiceCollection services) => services.GetObjectAccessorValue<IHostBuilderContainer>()?.Value;
2223

23-
/// <inheritdoc cref="GetHostBuilder(IServiceCollection)"/>
24-
public static IHostBuilder GetRequiredHostBuilder(this IServiceCollection services) => services.GetHostBuilder()
25-
?? throw new InvalidOperationException($"Not found {nameof(IHostBuilder)} in serviceCollection.");
24+
/// <inheritdoc cref="GetHostBuilder(IServiceCollection)"/>
25+
public static IHostBuilder GetRequiredHostBuilder(this IServiceCollection services) => services.GetHostBuilder()
26+
?? throw new InvalidOperationException($"Not found {nameof(IHostBuilder)} in serviceCollection.");
2627

27-
#endregion Public 方法
28+
/// <summary>
29+
/// 将用于<see cref="GetHostBuilder(IServiceCollection)"/>获取的<see cref="IHostBuilder"/>添加到<paramref name="services"/>中
30+
/// </summary>
31+
/// <param name="services"></param>
32+
/// <param name="hostBuilder"></param>
33+
/// <returns>是否为新添加</returns>
34+
public static bool SetHostBuilder(this IServiceCollection services, IHostBuilder hostBuilder)
35+
{
36+
if (services.TryGetObjectAccessor<IHostBuilderContainer>(out var container)
37+
&& container is not null)
38+
{
39+
if (container.Value is null)
40+
{
41+
container.Value = new(hostBuilder);
42+
}
43+
else
44+
{
45+
container.Value.Value = hostBuilder;
46+
}
47+
return false;
48+
}
49+
else
50+
{
51+
services.AddObjectAccessor<IHostBuilderContainer>(new(hostBuilder));
52+
return true;
53+
}
2854
}
55+
56+
#endregion Public 方法
2957
}

src/Directory.Build.props

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
<!--Package Info-->
3131
<PropertyGroup>
32-
<VersionPrefix>1.1.11</VersionPrefix>
32+
<VersionPrefix>1.1.12</VersionPrefix>
3333

3434
<PackageIdPrefix>Cuture.Extensions</PackageIdPrefix>
3535
<Authors>Stratos</Authors>
@@ -53,4 +53,8 @@
5353
<ItemGroup Condition="'$(Configuration)' == 'Release'">
5454
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.*" PrivateAssets="All" />
5555
</ItemGroup>
56+
57+
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
58+
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
59+
</PropertyGroup>
5660
</Project>

0 commit comments

Comments
 (0)