0
有接口...在Castle Windsor中,如何註冊泛型接口的許多實現中的一個實現泛型類型的實現?
IThing
IWrapping<IThing>
...通過Things
實現...
Cookie : IThing
Carmel : IThing
Chocolate : IThing
...和Wrappings
他們...
Paper <TThing> : IWrapping<TThing> where TThing is IThing
Foil <TThing> : IWrapping<TThing> where TThing is IThing
...我選擇一個實現Wrapping
來運行該應用程序,忽略其他。要註冊選擇了所有已知的IThing
實現我現在必須列出所有這些Wrapping
:
Component.For<IWrapping<Cookie>>() .ImplementedBy<Paper<Cookie>>(),
Component.For<IWrapping<Carmel>>() .ImplementedBy<Paper<Carmel>>(),
Component.For<IWrapping<Chocolate>>().ImplementedBy<Paper<Chocolate>>(),
怎樣一個寄存器所有的人都在一次?
Component.For<IWrapping<IThing>>()
.ImplementedBy<Paper<ALL_FOUND_IMPLEMENTATIONS_OF_ITHING>>(), // One place to switch between Paper and Foil