Skip to content

Commit cd5d98f

Browse files
committed
Added overloads with optional parameters to DepdencyContext resolvers.
1 parent 889ba21 commit cd5d98f

File tree

2 files changed

+69
-2
lines changed

2 files changed

+69
-2
lines changed

DependencyInjection/src/AppCore.Extensions.DependencyInjection.DependencyModelExtensions/DependencyContextReflectionBuilderExtensions.cs

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using AppCore.Diagnostics;
77
using AppCore.Extensions.DependencyInjection;
88
using AppCore.Extensions.DependencyInjection.Facilities;
9+
using Microsoft.Extensions.DependencyModel;
910

1011
// ReSharper disable once CheckNamespace
1112
namespace Microsoft.Extensions.DependencyInjection;
@@ -24,14 +25,36 @@ public static class DependencyContextReflectionBuilderExtensions
2425
/// <exception cref="ArgumentNullException">Argument <paramref name="builder"/> is <c>null</c>. </exception>
2526
public static IServiceDescriptorReflectionBuilder DependencyContext(
2627
this IServiceDescriptorReflectionBuilder builder,
27-
Action<DependencyContextServiceDescriptorResolver>? configure = null)
28+
Action<DependencyContextServiceDescriptorResolver> configure)
2829
{
2930
Ensure.Arg.NotNull(builder);
3031
Ensure.Arg.NotNull(configure);
3132

3233
return builder.AddResolver(configure);
3334
}
3435

36+
/// <summary>
37+
/// Adds service descriptors by reflection.
38+
/// </summary>
39+
/// <param name="builder">The <see cref="IServiceDescriptorReflectionBuilder"/>.</param>
40+
/// <param name="context">The <see cref="DependencyModel.DependencyContext"/> to search for service descriptors.</param>
41+
/// <param name="configure">The delegate to configure the <see cref="DependencyContextServiceDescriptorResolver"/>.</param>
42+
/// <returns>The <see cref="IServiceDescriptorReflectionBuilder"/>.</returns>
43+
/// <exception cref="ArgumentNullException">Argument <paramref name="builder"/> is <c>null</c>. </exception>
44+
public static IServiceDescriptorReflectionBuilder DependencyContext(
45+
this IServiceDescriptorReflectionBuilder builder,
46+
DependencyContext? context = null,
47+
Action<DependencyContextServiceDescriptorResolver>? configure = null)
48+
{
49+
return DependencyContext(
50+
builder,
51+
c =>
52+
{
53+
c.Add(context ?? DependencyModel.DependencyContext.Default);
54+
configure?.Invoke(c);
55+
});
56+
}
57+
3558
/// <summary>
3659
/// Adds facilities by reflection.
3760
/// </summary>
@@ -49,6 +72,28 @@ public static IFacilityReflectionBuilder DependencyContext(
4972
return builder.AddResolver(configure);
5073
}
5174

75+
/// <summary>
76+
/// Adds facilities by reflection.
77+
/// </summary>
78+
/// <param name="builder">The <see cref="IFacilityReflectionBuilder"/>.</param>
79+
/// <param name="context">The <see cref="DependencyModel.DependencyContext"/> to search for facilities.</param>
80+
/// <param name="configure">The delegate to configure the <see cref="DependencyContextResolver"/>.</param>
81+
/// <returns>The <see cref="IServiceDescriptorReflectionBuilder"/>.</returns>
82+
/// <exception cref="ArgumentNullException">Argument <paramref name="builder"/> or <paramref name="configure"/> is <c>null</c>. </exception>
83+
public static IFacilityReflectionBuilder DependencyContext(
84+
this IFacilityReflectionBuilder builder,
85+
DependencyContext? context = null,
86+
Action<DependencyContextResolver>? configure = null)
87+
{
88+
return DependencyContext(
89+
builder,
90+
c =>
91+
{
92+
c.Add(context ?? DependencyModel.DependencyContext.Default);
93+
configure?.Invoke(c);
94+
});
95+
}
96+
5297
/// <summary>
5398
/// Adds facility extensions by reflection.
5499
/// </summary>
@@ -65,4 +110,26 @@ public static IFacilityExtensionReflectionBuilder DependencyContext(
65110

66111
return builder.AddResolver(configure);
67112
}
113+
114+
/// <summary>
115+
/// Adds facility extensions by reflection.
116+
/// </summary>
117+
/// <param name="builder">The <see cref="IFacilityExtensionReflectionBuilder"/>.</param>
118+
/// <param name="context">The <see cref="DependencyModel.DependencyContext"/> to search for facilities.</param>
119+
/// <param name="configure">The delegate to configure the <see cref="DependencyContextResolver"/>.</param>
120+
/// <returns>The <see cref="IFacilityExtensionReflectionBuilder"/>.</returns>
121+
/// <exception cref="ArgumentNullException">Argument <paramref name="builder"/> or <paramref name="configure"/> is <c>null</c>. </exception>
122+
public static IFacilityExtensionReflectionBuilder DependencyContext(
123+
this IFacilityExtensionReflectionBuilder builder,
124+
DependencyContext? context = null,
125+
Action<DependencyContextResolver>? configure = null)
126+
{
127+
return DependencyContext(
128+
builder,
129+
c =>
130+
{
131+
c.Add(context ?? DependencyModel.DependencyContext.Default);
132+
configure?.Invoke(c);
133+
});
134+
}
68135
}

DependencyInjection/src/AppCore.Extensions.DependencyInjection.DependencyModelExtensions/Facilities/DependencyContextResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public DependencyContextResolver WithPrivateTypes(bool value = true)
4545
/// </summary>
4646
/// <param name="dependencyContext">The <see cref="DependencyContext"/>.</param>
4747
/// <returns>The <see cref="DependencyContextResolver"/>.</returns>
48-
public DependencyContextResolver From(DependencyContext dependencyContext)
48+
public DependencyContextResolver Add(DependencyContext dependencyContext)
4949
{
5050
Ensure.Arg.NotNull(dependencyContext);
5151

0 commit comments

Comments
 (0)