Odwrócenie sterowania (IoC) to abstrakcyjna zasada opisująca aspekt niektórych projektów architektury oprogramowania, w których przepływ sterowania w systemie jest odwrócony w porównaniu z programowaniem proceduralnym.
Jeśli dobrze rozumiem, typowym mechanizmem wstrzykiwania zależności jest wstrzyknięcie albo przez konstruktor klasy, albo przez właściwość publiczną (składową) klasy. To uwidacznia wstrzykiwaną zależność i narusza zasadę hermetyzacji OOP. Czy mam rację w identyfikacji tego kompromisu? Jak radzisz sobie z tym problemem? Zobacz także moją odpowiedź na moje własne pytanie poniżej.
(W związku z tym pytaniem, EF4: dlaczego tworzenie serwera proxy musi być włączone, gdy jest włączone ładowanie z opóźnieniem? ). Jestem nowy w DI, więc wytrzymaj ze mną. Rozumiem, że kontener jest odpowiedzialny za tworzenie instancji wszystkich moich zarejestrowanych typów, ale w tym celu wymaga odwołania do wszystkich bibliotek DLL …
Czy można rozwiązać wystąpienie IOptions<AppSettings>z ConfigureServicesmetody w programie Startup? Zwykle możesz użyć IServiceProviderdo zainicjowania instancji, ale nie masz go na tym etapie, gdy rejestrujesz usługi. public void ConfigureServices(IServiceCollection services) { services.Configure<AppSettings>( configuration.GetConfigurationSection(nameof(AppSettings))); // How can I resolve IOptions<AppSettings> here? }
Jak można używać kontenera IoC do testów jednostkowych? Czy warto zarządzać makietami w ogromnym rozwiązaniu (ponad 50 projektów) przy użyciu IoC? Jakieś doświadczenia? Jakieś biblioteki C #, które dobrze sprawdzają się przy używaniu go w testach jednostkowych?
Rozumiem koncepcję DI, ale dopiero uczę się, co mogą zrobić różne kontenery IoC. Wygląda na to, że większość ludzi opowiada się za używaniem kontenerów IoC do łączenia usług bezstanowych, ale co z używaniem ich do obiektów stanowych, takich jak encje? Niezależnie od tego, czy jest to dobre, czy złe, zwykle …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.