Czy można zarejestrować usługę w czasie wykonywania, czyli po ContainerBuilder
zbudowaniu i Container
utworzeniu (i usunięciu ContainerBuilder
) usługi?
ioc-container
autofac
Paul Knopf
źródło
źródło
Odpowiedzi:
Tak, możesz, korzystając z
Update
metody naContainerBuilder
:źródło
Ponieważ ContainerBuilder.Update został przestarzały, nowe zalecenie polega na użyciu podrzędnego zakresu życia.
Dodawanie rejestracji do zakresu dożywotniego
Autofac umożliwia dodawanie rejestracji „w locie” podczas tworzenia zakresów dożywotnich. Może ci to pomóc, gdy musisz zrobić coś w rodzaju „zgrzewania punktowego” nadpisania ograniczonej rejestracji lub jeśli generalnie potrzebujesz tylko dodatkowych rzeczy w zakresie, którego nie chcesz rejestrować globalnie. Robisz to, przekazując lambdę do BeginLifetimeScope (), która pobiera ContainerBuilder i dodaje rejestracje.
Praca z dożywotnimi zakresami
źródło