Skip to content

Commit 6046dd6

Browse files
authored
For_Func_returned_type_with_lazy_dependency_Func_parameters_are_correctly_passed (#394)
1 parent dab4dd4 commit 6046dd6

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/DryIoc/Container.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3181,7 +3181,7 @@ public static bool TryInterpret(IResolverContext r, Expression expr,
31813181
for (var i = 0; i < multipleParams.Count; i++)
31823182
if (expr == multipleParams[i])
31833183
{
3184-
result = ((object[]) paramValues)[i];
3184+
result = ((object[]) p.ParamValues)[i];
31853185
return true;
31863186
}
31873187
}

test/DryIoc.UnitTests/FuncTests.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,24 @@ public void Can_supply_fresh_args_in_different_open_scopes()
491491
}
492492
}
493493

494+
[Test]
495+
public void For_Func_returned_type_with_lazy_dependency_Func_parameters_are_correctly_passed()
496+
{
497+
var c = new Container();
498+
499+
c.Register<A>();
500+
c.RegisterDelegate<F>(() => new F("notUsed"));
501+
c.Register<L>();
502+
c.Register<Y>();
503+
504+
var lFunc = c.Resolve<Func<A, Y, L>>();
505+
var l = lFunc(new A(), new Y(new A()));
506+
507+
var f = l.F;
508+
509+
Assert.IsNotNull(f, "Expected F will be created via Lazy<> evaluation.");
510+
}
511+
494512
#region CUT
495513

496514
class SS

0 commit comments

Comments
 (0)