Załóżmy, że mamy IFoo wdrożone przez Foo i IBar zaimplementowane przez FirstBar i SecondBar.Castle Windsor: Używanie rejestracji konwencji wraz z konkretnymi implementacjami
Stosując tę rejestrację konwencji:
container.Register(
AllTypes.FromThisAssembly().Pick()
.WithService.DefaultInterface())
będziemy mieli trzy wpisy w pojemniku:
IFoo = Foo
IBar = FirstBar
IBar = SecondBar
Teraz, w jaki sposób możemy dostosować tej rejestracji, aby móc powiedzieć, że do pojemnika IBar chcemy rejestrować tylko SecondBar? Sortuj według:
container.Register(
AllTypes.FromThisAssembly().Pick()
.WithService.DefaultInterface()
.For<IBar>().Select<SecondBar>())
Przypadek użycia: mamy wiele usług w naszej aplikacji zarejestrowanych przez konwencje. Jednak niektóre interfejsy usług mają dwie lub więcej implementacji (na przykład rzeczywistą implementację, fałszywą implementację i implementację testową). Rejestracja Konwentowa zarejestruje je wszystkie pod tym samym interfejsem i podczas rozwiązywania interfejsu otrzymamy pierwszą implementację (w niedeterministycznej kolejności). Chcemy być w stanie wybrać jedną konkretną implementację dla tych usług podczas rejestracji. Jak możemy to zrobić?
Github. Dobrym pomysłem może być przeniesienie tego na grupę użytkowników zamków w grupach google, aby najpierw zebrać opinie. Pozdrowienia –
Tak, Ignoruj jest dokładnie tym, czego potrzebuję – PandaWood