You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I observe a strange behavior with using LightInject 6.4.1.
I have the following TestClasses:
public class Driver
{
private ICar _car = null;
public Driver( ICar car )
{
_car = car;
}
// This constructor makes the difference
public Driver(string s)
{
Console.WriteLine( s );
}
public string RunCar()
{
var miles = _car.Run();
var unit = miles == 1 ? "mile" : "miles";
return $"Running {_car.GetType().Name} - {miles} {unit}";
}
}
public interface ICar
{
int Run();
}
public class BMW : ICar
{
private int _miles = 0;
public int Run()
{
return ++_miles;
}
}
I run the following test on these classes:
var scontainer = new ServiceContainer();
scontainer.Register<ICar, BMW>();
var drv2 = scontainer.Create<Driver>();
The test behaves as expected and delivers a Driver object using the correct constructor.
If I change the test to use a Clone of the container, the test fails with the message that Driver can't be resolved, because it has no resolvable constructor:
var scontainer = new ServiceContainer().Clone();
scontainer.Register<ICar, BMW>();
var drv2 = scontainer.Create<Driver>();
System.InvalidOperationException : Unable to resolve type: NdoDllUnitTests.Driver, service name:
----> System.InvalidOperationException : No resolvable constructor found for Type: NdoDllUnitTests.Driver
If I remove the constructor with the string parameter from the class Driver, the second test passes. The clone seems to lose the ability to resolve a constructor, if more than one constructor is given.
The text was updated successfully, but these errors were encountered:
Hello everyone,
I observe a strange behavior with using LightInject 6.4.1.
I have the following TestClasses:
I run the following test on these classes:
The test behaves as expected and delivers a Driver object using the correct constructor.
If I change the test to use a Clone of the container, the test fails with the message that Driver can't be resolved, because it has no resolvable constructor:
If I remove the constructor with the string parameter from the class Driver, the second test passes. The clone seems to lose the ability to resolve a constructor, if more than one constructor is given.
The text was updated successfully, but these errors were encountered: