Разрешить с ParameterOverride, ломая изменения с 5.9.0 и выше - PullRequest
0 голосов
/ 19 сентября 2019

Я обновляю свое существующее приложение с 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+?

...