Skip to content

Commit 16dd148

Browse files
committed
Use new language features.
1 parent 8ab2248 commit 16dd148

File tree

79 files changed

+2743
-2821
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2743
-2821
lines changed

DependencyInjection/src/AppCore.Extensions.DependencyInjection.Abstractions/Activator/ActivatorExtensions.cs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,23 @@
44
using System;
55
using AppCore.Diagnostics;
66

7-
namespace AppCore.Extensions.DependencyInjection.Activator
7+
namespace AppCore.Extensions.DependencyInjection.Activator;
8+
9+
/// <summary>
10+
/// Provides extension methods for the <see cref="IActivator"/> interface.
11+
/// </summary>
12+
public static class ActivatorExtensions
813
{
914
/// <summary>
10-
/// Provides extension methods for the <see cref="IActivator"/> interface.
15+
/// Instantiate a type with constructor arguments provided directly and/or from the <see cref="IServiceProvider"/>.
1116
/// </summary>
12-
public static class ActivatorExtensions
17+
/// <typeparam name="T">The type to activate.</typeparam>
18+
/// <param name="activator">The <see cref="IActivator"/>.</param>
19+
/// <param name="parameters">Constructor arguments not provided by the <see cref="IServiceProvider"/>.</param>
20+
/// <returns>An activated object of type instanceType</returns>
21+
public static T CreateInstance<T>(this IActivator activator, params object[] parameters)
1322
{
14-
/// <summary>
15-
/// Instantiate a type with constructor arguments provided directly and/or from the <see cref="IServiceProvider"/>.
16-
/// </summary>
17-
/// <typeparam name="T">The type to activate.</typeparam>
18-
/// <param name="activator">The <see cref="IActivator"/>.</param>
19-
/// <param name="parameters">Constructor arguments not provided by the <see cref="IServiceProvider"/>.</param>
20-
/// <returns>An activated object of type instanceType</returns>
21-
public static T CreateInstance<T>(this IActivator activator, params object[] parameters)
22-
{
23-
Ensure.Arg.NotNull(activator, nameof(activator));
24-
return (T) activator.CreateInstance(typeof(T), parameters);
25-
}
23+
Ensure.Arg.NotNull(activator);
24+
return (T) activator.CreateInstance(typeof(T), parameters);
2625
}
2726
}

DependencyInjection/src/AppCore.Extensions.DependencyInjection.Abstractions/Activator/DefaultActivator.cs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,22 @@
44
using System;
55
using AppCore.Diagnostics;
66

7-
namespace AppCore.Extensions.DependencyInjection.Activator
7+
namespace AppCore.Extensions.DependencyInjection.Activator;
8+
9+
/// <summary>
10+
/// Represents the default activator.
11+
/// </summary>
12+
public sealed class DefaultActivator : IActivator
813
{
914
/// <summary>
10-
/// Represents the default activator.
15+
/// Gets the static instance of the <see cref="DefaultActivator"/>.
1116
/// </summary>
12-
public sealed class DefaultActivator : IActivator
13-
{
14-
/// <summary>
15-
/// Gets the static instance of the <see cref="DefaultActivator"/>.
16-
/// </summary>
17-
public static DefaultActivator Instance { get; } = new();
17+
public static DefaultActivator Instance { get; } = new();
1818

19-
/// <inheritdoc />
20-
public object CreateInstance(Type instanceType, params object[] parameters)
21-
{
22-
Ensure.Arg.NotNull(instanceType, nameof(instanceType));
23-
return System.Activator.CreateInstance(instanceType, parameters);
24-
}
19+
/// <inheritdoc />
20+
public object CreateInstance(Type instanceType, params object[] parameters)
21+
{
22+
Ensure.Arg.NotNull(instanceType);
23+
return System.Activator.CreateInstance(instanceType, parameters);
2524
}
2625
}

DependencyInjection/src/AppCore.Extensions.DependencyInjection.Abstractions/Activator/IActivator.cs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,18 @@
33

44
using System;
55

6-
namespace AppCore.Extensions.DependencyInjection.Activator
6+
namespace AppCore.Extensions.DependencyInjection.Activator;
7+
8+
/// <summary>
9+
/// Helper code for the various activator services.
10+
/// </summary>
11+
public interface IActivator
712
{
813
/// <summary>
9-
/// Helper code for the various activator services.
14+
/// Instantiate a type with constructor arguments provided directly and/or from the <see cref="IServiceProvider"/>.
1015
/// </summary>
11-
public interface IActivator
12-
{
13-
/// <summary>
14-
/// Instantiate a type with constructor arguments provided directly and/or from the <see cref="IServiceProvider"/>.
15-
/// </summary>
16-
/// <param name="instanceType">The type to activate.</param>
17-
/// <param name="parameters">Constructor arguments not provided by the <see cref="IServiceProvider"/>.</param>
18-
/// <returns>An activated object of type instanceType</returns>
19-
object CreateInstance(Type instanceType, params object[] parameters);
20-
}
16+
/// <param name="instanceType">The type to activate.</param>
17+
/// <param name="parameters">Constructor arguments not provided by the <see cref="IServiceProvider"/>.</param>
18+
/// <returns>An activated object of type instanceType</returns>
19+
object CreateInstance(Type instanceType, params object[] parameters);
2120
}

DependencyInjection/src/AppCore.Extensions.DependencyInjection.Abstractions/Activator/ServiceProviderActivator.cs

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,29 @@
55
using AppCore.Diagnostics;
66
using Microsoft.Extensions.DependencyInjection;
77

8-
namespace AppCore.Extensions.DependencyInjection.Activator
8+
namespace AppCore.Extensions.DependencyInjection.Activator;
9+
10+
/// <summary>
11+
/// Provides an implementation of <see cref="IActivator"/> which uses <see cref="IServiceProvider"/> to
12+
/// resolve services.
13+
/// </summary>
14+
public class ServiceProviderActivator : IActivator
915
{
16+
private readonly IServiceProvider _serviceProvider;
17+
1018
/// <summary>
11-
/// Provides an implementation of <see cref="IActivator"/> which uses <see cref="IServiceProvider"/> to
12-
/// resolve services.
19+
/// Initializes a new instance of the <see cref="ServiceProviderActivator"/> class.
1320
/// </summary>
14-
public class ServiceProviderActivator : IActivator
21+
/// <param name="serviceProvider">The <see cref="IServiceProvider"/> used to resolve services.</param>
22+
public ServiceProviderActivator(IServiceProvider serviceProvider)
1523
{
16-
private readonly IServiceProvider _serviceProvider;
17-
18-
/// <summary>
19-
/// Initializes a new instance of the <see cref="ServiceProviderActivator"/> class.
20-
/// </summary>
21-
/// <param name="serviceProvider">The <see cref="IServiceProvider"/> used to resolve services.</param>
22-
public ServiceProviderActivator(IServiceProvider serviceProvider)
23-
{
24-
Ensure.Arg.NotNull(serviceProvider, nameof(serviceProvider));
25-
_serviceProvider = serviceProvider;
26-
}
24+
Ensure.Arg.NotNull(serviceProvider);
25+
_serviceProvider = serviceProvider;
26+
}
2727

28-
/// <inheritdoc />
29-
public object CreateInstance(Type instanceType, params object[] parameters)
30-
{
31-
return ActivatorUtilities.CreateInstance(_serviceProvider, instanceType, parameters);
32-
}
28+
/// <inheritdoc />
29+
public object CreateInstance(Type instanceType, params object[] parameters)
30+
{
31+
return ActivatorUtilities.CreateInstance(_serviceProvider, instanceType, parameters);
3332
}
3433
}

DependencyInjection/src/AppCore.Extensions.DependencyInjection.Abstractions/AppCoreBuilder.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,17 @@
66
using Microsoft.Extensions.DependencyInjection;
77
using Microsoft.Extensions.DependencyInjection.Extensions;
88

9-
namespace AppCore.Extensions.DependencyInjection
9+
namespace AppCore.Extensions.DependencyInjection;
10+
11+
internal class AppCoreBuilder : IAppCoreBuilder
1012
{
11-
internal class AppCoreBuilder : IAppCoreBuilder
12-
{
13-
public IServiceCollection Services { get; }
13+
public IServiceCollection Services { get; }
1414

15-
public AppCoreBuilder(IServiceCollection services)
16-
{
17-
Ensure.Arg.NotNull(services, nameof(services));
18-
Services = services;
15+
public AppCoreBuilder(IServiceCollection services)
16+
{
17+
Ensure.Arg.NotNull(services);
18+
Services = services;
1919

20-
services.TryAddTransient<IActivator, ServiceProviderActivator>();
21-
}
20+
services.TryAddTransient<IActivator, ServiceProviderActivator>();
2221
}
2322
}

DependencyInjection/src/AppCore.Extensions.DependencyInjection.Abstractions/AppCoreServiceCollectionExtensions.cs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,20 @@
33

44
using Microsoft.Extensions.DependencyInjection;
55

6-
namespace AppCore.Extensions.DependencyInjection
6+
namespace AppCore.Extensions.DependencyInjection;
7+
8+
/// <summary>
9+
/// Provides extension methods for the <see cref="IServiceCollection"/> interface.
10+
/// </summary>
11+
public static class AppCoreServiceCollectionExtensions
712
{
813
/// <summary>
9-
/// Provides extension methods for the <see cref="IServiceCollection"/> interface.
14+
/// Adds AppCore services.
1015
/// </summary>
11-
public static class AppCoreServiceCollectionExtensions
16+
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
17+
/// <returns>The <see cref="IAppCoreBuilder"/>.</returns>
18+
public static IAppCoreBuilder AddAppCore(this IServiceCollection services)
1219
{
13-
/// <summary>
14-
/// Adds AppCore services.
15-
/// </summary>
16-
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
17-
/// <returns>The <see cref="IAppCoreBuilder"/>.</returns>
18-
public static IAppCoreBuilder AddAppCore(this IServiceCollection services)
19-
{
20-
return new AppCoreBuilder(services);
21-
}
20+
return new AppCoreBuilder(services);
2221
}
2322
}

0 commit comments

Comments
 (0)