Inwersja kontroli (IoC) może być dość myląca, gdy zostanie po raz pierwszy napotkana. Co to jest? Który problem rozwiązuje? Kiedy należy używać, a kiedy
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.
Inwersja kontroli (IoC) może być dość myląca, gdy zostanie po raz pierwszy napotkana. Co to jest? Który problem rozwiązuje? Kiedy należy używać, a kiedy
Obecnie otrzymuję ten błąd: System.Data.SqlClient.SqlException: Nowa transakcja jest niedozwolona, ponieważ w sesji działają inne wątki. podczas uruchamiania tego kodu: public class ProductManager : IProductManager { #region Declare Models private RivWorks.Model.Negotiation.RIV_Entities...
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Zamknięte 6 lat temu . Zablokowana . To pytanie i odpowiedzi są zablokowane, ponieważ pytanie jest nie na temat, ale ma znaczenie historyczne. Obecnie nie akceptuje nowych...
Według artykułu napisanego przez Martina Fowlera , odwrócenie kontroli jest zasadą, w której przepływ sterowania programem jest odwrócony: zamiast programisty kontrolującego przepływ programu, źródła zewnętrzne (szkielet, usługi, inne komponenty) przejmują kontrolę to. To tak, jakbyśmy podłączali...
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to...
W Javie IoC / DI jest bardzo powszechną praktyką, która jest szeroko stosowana w aplikacjach internetowych, prawie wszystkich dostępnych frameworkach i Java EE. Z drugiej strony istnieje również wiele dużych aplikacji internetowych w Pythonie, ale oprócz Zope (które, jak słyszałem, powinno być...
Uważam, że moi konstruktorzy zaczynają wyglądać tak: public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2.... ) z ciągle rosnącą listą parametrów. Ponieważ „Kontener” jest kontenerem do wstrzykiwania zależności, dlaczego nie mogę tego po prostu zrobić: public MyClass(Container...
Zastanawiam się nad projektem biblioteki C #, która będzie miała kilka różnych funkcji wysokiego poziomu. Oczywiście te funkcje wysokiego poziomu będą wdrażane przy użyciu zasad projektowania klasy SOLID w jak największym stopniu. W związku z tym prawdopodobnie będą istnieć klasy przeznaczone do...
Obecnie tworzę eksperymentalne projekty z nodejs. Z Springem zaprogramowałem wiele aplikacji Java EE i doceniam łatwość wstrzykiwania zależności. Teraz jestem ciekawy: jak wykonać wstrzyknięcie zależności za pomocą węzła? Lub: Czy w ogóle go potrzebuję? Czy istnieje koncepcja zastępująca, ponieważ...
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz,...
Jestem wieloletnim programistą Windows, który obciął mnie zębami w systemie Windows 32 i wczesnym COM. Pracuję z .NET od 2001 roku, więc jestem dość biegły w C # i CLR. Nigdy nie słyszałem o Castle Windsor, dopóki nie zacząłem brać udziału w Stack Overflow. Przeczytałem przewodnik „Pierwsze kroki”...
Czytałem artykuły na MSDN o Unity (Dependency Injection, Inversion of Control), ale myślę, że potrzebuję wyjaśnienia w prostych słowach (lub prostych przykładach). Znam wzorzec MVPC (używamy go tutaj), ale po prostu nie mogę jeszcze zrozumieć tej rzeczy z Unity i myślę, że to kolejny krok w naszym...
Refaktoryzuję klasę i dodaję do niej nową zależność. Klasa obecnie przyjmuje swoje istniejące zależności w konstruktorze. Aby zachować spójność, dodaję parametr do konstruktora. Oczywiście jest kilka podklas plus jeszcze więcej dla testów jednostkowych, więc teraz gram w grę polegającą na...
Próbuję zmusić Unity do zarządzania tworzeniem moich obiektów i chcę mieć pewne parametry inicjalizacji, które nie są znane do czasu wykonania: W tej chwili jedynym sposobem, w jaki mogłem wymyślić, jak to zrobić, jest posiadanie metody Init w interfejsie. interface IMyIntf { void...
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć, podając fakty i cytaty, edytując ten post . Zamknięte 6 lat temu . Popraw to...
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...
(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...
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) {...
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...