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 nie?
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 _dbRiv = RivWorks.Model.Stores.RivEntities(AppSettings.RivWorkEntities_connString); private RivWorks.Model.NegotiationAutos.RivFeedsEntities _dbFeed = RivWorks.Model.Stores.FeedEntities(AppSettings.FeedAutosEntities_connString); #endregion public IProduct GetProductById(Guid productId) { // Do a quick sync of …
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 odpowiedzi ani interakcji. Używam Dependency Injection (DI) od dłuższego czasu, …
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 coś do czegoś innego. Wspomniał przykład o EJB 2.0: Na przykład interfejs Session Bean …
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 pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
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ć naprawdę okropne w kodowaniu), IoC nie wydaje się …
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 con) dla każdej klasy? Jakie są wady? Jeśli to zrobię, wydaje mi się, że …
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 regularnego korzystania bezpośrednio przez konsumentów oraz „klasy wsparcia”, …
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ż styl programowania jest inny? Mówię o prostych rzeczach, jak na przykład …
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, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
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” w Castle …
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 projektowaniu aplikacji.
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 zmienianiu wszystkich konstruktorów, aby pasowały, a to trwa wieki. To …
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 Initialize(string runTimeParam); string RunTimeParam { get; } …
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 pytanie Jakie są zalety i wady korzystania z Enterprise Library …
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.