我正在尝试将一个集合及其instanceCreator一起注册。我无法为接受instanceCreator的Container.Collection.Register
方法找到任何重载。如果我尝试运行循环并使用Container.Register(instanceCreator, lifestyle)
多次注册一个类型及其instanceCreator,则无法执行此操作,因为我收到无法多次注册该类型的错误。
基本上我想做的是:
foreach(var item in items){
Container.Register<ILogWriter>(instanceCreator, lifestyle)
}
我有ILogWriter
的多个实现,每个实现都有各自不同的配置,需要在构造函数中传递它们,因此我需要使用instanceCreator重载。
TIA
Container.Collection.Register
用于立即注册整个集合。例如,通过使用批注册并提供Assembly
实例列表或Type
实例列表。
另一方面,您正在寻找的是为实例集合注册一个项目。这是使用Container.Collection.Append
重载完成的:
container.Collection.Append<ILogWriter>(instanceCreator, lifestyle);