我正在使用策略模式,并使用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注入依赖项。
我已经仔细阅读了一个描述这种情况的主题(Injecting arrays with Unity),并实现了所描述的解决方案:
container.RegisterType<IFactory,Factory>("FactoryA");
container.RegisterType<IStrategy, Strategy>();
container.Resolve<Strategy>();
但是,在编写过程中,传递给factories[]
构造函数的Strategy
数组始终是一个空数组。
我认为我已经很好地理解了它是如何工作的,因为所链接的问题给出了详细的答案,但是我显然是错误的。
您能帮忙阐明一下吗?