Внедрение массива с использованием Unity - PullRequest
0 голосов
/ 04 июля 2018

Я использую шаблон стратегии и внедряю зависимости с помощью Unity.

У меня есть интерфейс и реализация стратегии:

 public interface IStrategy

 public class Strategy: IStrategy
    {
        private readonly IFactory[] factories;
        public Strategy(IFactory[] factories)
        {
            this.factories = factories ?? throw new ArgumentNullException("factories");
        }
    }

И некоторые фабрики, интерфейс и реализация:

public interface IFactory

public class Factory: IFactory

Я пытаюсь внедрить зависимости, используя Unity.

Я внимательно прочитал тему, описывающую ситуацию, близкую к этой ( Внедрение массивов в Unity ), и реализовал описанное решение:

container.RegisterType<IFactory,Factory>("FactoryA");

container.RegisterType<IStrategy, Strategy>();

container.Resolve<Strategy>();

Однако во время компоновки массив factories[], передаваемый конструктору Strategy, всегда является пустым массивом.

Мне показалось, что я хорошо понял, как это работает, поскольку вопрос, связанный с вопросом, имеет подробный ответ, но я, очевидно, ошибаюсь.

Не могли бы вы помочь пролить свет на это?

...