SimpleInjector :使用 InstanceCreator 注册集合
SimpleInjector : Register collection with InstanceCreator
我正在尝试注册一个集合及其 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);
我正在尝试注册一个集合及其 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);