W MKOl co ma ResolveAll
zrobić ?? Wiem, że oficjalna odpowiedź brzmi: "Rozwiąż wszystkie prawidłowe komponenty pasujące do tego typu". Czy to oznacza, że zwróci dowolną klasę, która implementuje dany interfejs?Whats ResolveAll zrobić
Odpowiedz
Zwróci wszystkie klasy, które były zarejestrowane dla danego interfejsu.
To zwróci wszystkie klasy, które zostały zarejestrowane dla danego interfejsu.
... i nie czekają na wszelkich odniesień do rozwiązania. To mnie dzisiaj boli!
+1 za ważny warunek :) –
Nie ** dokładnie ** prawda. Zwróci komponenty zarejestrowane w danej usłudze i wszelkie inne usługi do przypisania. Więc jeśli poprosić o 'container.ResolveAll
Również stan wspomniałeś jest zmieniana w v2.5. W wersji 2.5 Windsor spróbuje rozwiązać komponenty, które czekają na zależności (jeśli zależności są wbudowane, lub np. 'DynamicParameters'). Tylko wtedy, gdy próba się nie powiedzie, zignoruje komponent i przejdzie do następnego. –
W Unity, ResolveAll rozpatruje każde zarejestrowane mapowanie dla interfejsu z wyjątkiem dla domyślnego mapowania.
więc jeśli jesteś zarejestrowany:
container.RegisterType<IInterface, ActualClassOne>(new ContainerControlledLifetimeManager());
container.RegisterType<IInterface, ActualClassOne>("Singleton", new ContainerControlledLifetimeManager());
container.RegisterType<IInterface, ActualClassOne>("Trans", new TransientLifetimeManager());
ResolveAll() będzie tylko daje IEnumerable zawierającą rozwiązany "Singleton" i "trans" mapowania
Dlaczego, do diabła, to robimy? To zawsze mnie irytowało. #Unity #Fail – RhysC
Subtelne zachęcanie do korzystania z mapowania bez nazwy? – LukeN
Ahem .. pytanie dotyczyło Castle-Windsor :) Tak czy inaczej, to dość ważna informacja. Może rozważyć wycięcie i wklejenie jakiegoś pytania związanego z Unity? Założę się, że jest mnóstwo – quetzalcoatl
Jeśli mam:
kontenerów. ResolveAll (new {argumentu = coś}). w przypadku, gdy (...)
wydaje się wszystkich składników T pobiera wystąpienia z „czymś”, chociaż nie wszystkie z CO mponents pełne wypełnić klauzulę where .... kto dba o Zwolnienie tych dodatkowych składników?
Co oznacza skrót IOC w tym kontekście? –