Я использую шаблон стратегии и внедряю зависимости с помощью 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
, всегда является пустым массивом.
Мне показалось, что я хорошо понял, как это работает, поскольку вопрос, связанный с вопросом, имеет подробный ответ, но я, очевидно, ошибаюсь.
Не могли бы вы помочь пролить свет на это?