Я обновляю свое существующее приложение с Unity 4.0.1 до 5.11.1.При этом вызовы Resolve с использованием ParameterOverride не могут вызвать соответствующий параметризованный конструктор.Конструктор по умолчанию всегда вызывается.
Я собрал простое консольное приложение, чтобы продемонстрировать проблему.При сборке с пакетом Unity Nuget 5.8.13 вызывается параметризованный конструктор.Обновление пакета nuget до версии 5.9.0 вызывает конструктор по умолчанию.Это то же самое для всех последующих версий.
public class MyClass
{
public MyClass()
{
Console.WriteLine("Default ctor");
}
public MyClass(string myParameter)
{
Console.WriteLine("Parameterized ctor");
}
}
class Program
{
static void Main(string[] args)
{
var unityContainer = new UnityContainer();
unityContainer.Resolve<MyClass>(new ParameterOverride("myParameter", "ABCD"));
}
}
Я ожидаю, что ParameterOverride будет соответствовать параметризованному конструктору.Что-то изменилось в переопределении параметров 5.9+?