Inversion of Control (IoC) ist ein abstraktes Prinzip, das einen Aspekt einiger Softwarearchitekturentwürfe beschreibt, bei denen der Steuerungsfluss eines Systems im Vergleich zur prozeduralen Programmierung invertiert ist.
Wenn ich das richtig verstehe, besteht der typische Mechanismus für die Abhängigkeitsinjektion darin, entweder über einen Klassenkonstruktor oder über eine öffentliche Eigenschaft (Mitglied) der Klasse zu injizieren. Dies legt die injizierte Abhängigkeit offen und verstößt gegen das OOP-Prinzip der Kapselung. Bin ich richtig darin, diesen Kompromiss zu identifizieren? Wie gehen …
(Im Zusammenhang mit dieser Frage, EF4: Warum muss die Proxy-Erstellung aktiviert werden, wenn das verzögerte Laden aktiviert ist? ) Ich bin neu bei DI, also nimm es mit. Ich verstehe, dass der Container für die Instanziierung aller meiner registrierten Typen zuständig ist. Dazu ist jedoch ein Verweis auf alle DLLs …
Ist es möglich, eine Instanz von IOptions<AppSettings>aus der ConfigureServicesMethode in Startup aufzulösen ? Normalerweise können Sie IServiceProviderInstanzen initialisieren, aber Sie haben sie zu diesem Zeitpunkt noch nicht, wenn Sie Dienste registrieren. public void ConfigureServices(IServiceCollection services) { services.Configure<AppSettings>( configuration.GetConfigurationSection(nameof(AppSettings))); // How can I resolve IOptions<AppSettings> here? }
Wie kann ein IoC-Container für Unit-Tests verwendet werden? Ist es nützlich, Mocks in einer riesigen Lösung (über 50 Projekte) mit IoC zu verwalten? Irgendwelche Erfahrungen? Gibt es C # -Bibliotheken, die sich gut für Unit-Tests eignen?
Ich verstehe das Konzept hinter DI, aber ich lerne gerade, was verschiedene IoC-Container können. Es scheint, dass die meisten Leute die Verwendung von IoC-Containern befürworten, um zustandslose Dienste zu verkabeln, aber was ist mit der Verwendung für zustandsbehaftete Objekte wie Entitäten? Ob es richtig oder falsch ist, ich stopfe meine …
Ich habe die sehr lange und mühsame Suche begonnen, TDD zu lernen und auf meinen Workflow anzuwenden . Ich habe den Eindruck, dass TDD sehr gut zu den IoC-Prinzipien passt. Nachdem ich einige Fragen mit TDD-Tags hier in SO durchsucht habe, habe ich gelesen, dass es eine gute Idee ist, …
Ich habe in letzter Zeit SOLID in C # auf ein ziemlich extremes Niveau gebracht und irgendwann festgestellt, dass ich heutzutage im Wesentlichen nicht viel anderes mache, als Funktionen zu komponieren. Und nachdem ich vor kurzem wieder angefangen hatte, mir F # anzuschauen, dachte ich mir, dass dies wahrscheinlich die …
Ich habe die IRespositoryzweimal (mit Namen) im folgenden Code registriert: // Setup the Client Repository IOC.Container.RegisterType<ClientEntities>(new InjectionConstructor()); IOC.Container.RegisterType<IRepository, GenericRepository> ("Client", new InjectionConstructor(typeof(ClientEntities))); // Setup the Customer Repository IOC.Container.RegisterType<CustomerEntities>(new InjectionConstructor()); IOC.Container.RegisterType<IRepository, GenericRepository> ("Customer", new InjectionConstructor(typeof(CustomerEntities))); IOC.Container.RegisterType<IClientModel, ClientModel>(); IOC.Container.RegisterType<ICustomerModel, CustomerModel>(); Aber wenn ich dies beheben möchte (um das zu verwenden IRepository), muss …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.