Skip to content

Commit 22c572a

Browse files
committed
fixed the potential issue with switching back from the SelectLastFactoryRule to the default rule
1 parent b784839 commit 22c572a

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/DryIoc/Container.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5612,7 +5612,7 @@ public Rules WithDefaultRegistrationServiceKey(object serviceKey) =>
56125612

56135613
/// <summary>Sets <see cref="FactorySelector"/></summary>
56145614
public Rules WithFactorySelector(FactorySelectorRule rule) =>
5615-
new Rules(_settings | (rule == SelectLastRegisteredFactory ? Settings.SelectLastRegisteredFactory : default(Settings)),
5615+
new Rules(rule == SelectLastRegisteredFactory ? (_settings | Settings.SelectLastRegisteredFactory) : (_settings & ~Settings.SelectLastRegisteredFactory),
56165616
rule, DefaultReuse, _made, DefaultIfAlreadyRegistered, DependencyCountInLambdaToSplitBigObjectGraph,
56175617
DependencyResolutionCallExprs, ItemToExpressionConverter,
56185618
DynamicRegistrationProviders, _dynamicRegistrationFlags, UnknownServiceResolvers, DefaultRegistrationServiceKey);
@@ -6252,7 +6252,7 @@ private Rules(Settings settings,
62526252
}
62536253

62546254
private Rules Clone(bool cloneMade) =>
6255-
new Rules(_settings, FactorySelector, DefaultReuse, cloneMade ? _made.Copy() : _made,
6255+
new Rules(_settings, FactorySelector, DefaultReuse, cloneMade ? _made.Clone() : _made,
62566256
DefaultIfAlreadyRegistered, DependencyCountInLambdaToSplitBigObjectGraph,
62576257
DependencyResolutionCallExprs, ItemToExpressionConverter, DynamicRegistrationProviders,
62586258
_dynamicRegistrationFlags, UnknownServiceResolvers, DefaultRegistrationServiceKey);
@@ -6269,6 +6269,7 @@ private Rules WithSettings(Settings newSettings)
62696269
[Flags]
62706270
private enum Settings
62716271
{
6272+
Empty = 0,
62726273
ThrowIfDependencyHasShorterReuseLifespan = 1 << 1,
62736274
ThrowOnRegisteringDisposableTransient = 1 << 2,
62746275
TrackingDisposableTransients = 1 << 3,
@@ -6904,8 +6905,7 @@ private Made(
69046905
_details = details;
69056906
}
69066907

6907-
internal Made Copy() =>
6908-
new Made(FactoryMethod, Parameters, PropertiesAndFields, FactoryMethodKnownResultType, _details);
6908+
internal Made Clone() => new Made(FactoryMethod, Parameters, PropertiesAndFields, FactoryMethodKnownResultType, _details);
69096909

69106910
private static ParameterSelector ComposeParameterSelectorFromArgs(ref bool hasCustomValue,
69116911
System.Linq.Expressions.Expression wholeServiceExpr, ParameterInfo[] paramInfos,

0 commit comments

Comments
 (0)