Запитання з тегом «dependency-injection»

Конструкція, що дозволяє зменшити зв'язок між компонентами, динамічно вводячи в програмний компонент залежності, які йому потрібні для функціонування.

2
Чому б не використовувати контейнер IoC для вирішення залежностей для сутностей / бізнес-об’єктів?
Я розумію концепцію DI, але я лише вивчаю, що можуть робити різні контейнери IoC. Здається, що більшість людей виступають за використання контейнерів IoC для підключення служб без громадянства, але як щодо їх використання для таких об'єктів, як сутності? Незалежно від того, правильно це чи неправильно, я зазвичай наповнюю свої сутності …

8
Чи є гарною практикою мати реєстратора як синглтона?
Я мав звичку передавати реєстратор конструктору, наприклад: public class OrderService : IOrderService { public OrderService(ILogger logger) { } } Але це досить дратує, тому я деякий час використовував це властивість: private ILogger logger = NullLogger.Instance; public ILogger Logger { get { return logger; } set { logger = value; } …

5
як модульно протестувати основний додаток asp.net із введенням залежностей конструктора -
У мене є основна програма asp.net, яка використовує ін’єкцію залежностей, визначену в класі програми startup.cs: public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:FotballConnection:DefaultConnection"])); // Repositories services.AddScoped<IUserRepository, UserRepository>(); services.AddScoped<IUserRoleRepository, UserRoleRepository>(); services.AddScoped<IRoleRepository, RoleRepository>(); services.AddScoped<ILoggingRepository, LoggingRepository>(); // Services services.AddScoped<IMembershipService, MembershipService>(); services.AddScoped<IEncryptionService, EncryptionService>(); // new repos services.AddScoped<IMatchService, MatchService>(); services.AddScoped<IMatchRepository, MatchRepository>(); services.AddScoped<IMatchBetRepository, MatchBetRepository>(); services.AddScoped<ITeamRepository, TeamRepository>(); …

4
Різниця між "Інверсія управління", "Інверсія залежності" та "Роз'єднання"
Я читаю теорію про інверсію та роз'єднання залежностей, і я не бачу різниці між ними. Інверсія залежності говорить про роз'єднання функціональних компонентів так, щоб компоненти вищого рівня не залежали від компонентів нижчого рівня. Роз’єднання розповідає про те саме і про те, як цього досягти. Але тоді у нас є IoC-контейнери, …

6
Різниця між @Bean та @Autowired
Чому я не можу використовувати @Autowiredв цьому випадку? @SpringBootApplication public class Application { @Autowired BookingService bookingService; public static void main(String[] args) { bookingService.book("Alice", "Bob", "Carol"); } } але можна використовувати @Bean @SpringBootApplication public class Application { @Bean BookingService bookingService() { return new BookingService(); } public static void main(String[] args) { …

5
Як ввести сховище в службу в Symfony?
Мені потрібно ввести два об’єкти ImageService. Одним з них є екземпляр Repository/ImageRepository, який я отримую так: $image_repository = $container->get('doctrine.odm.mongodb') ->getRepository('MycompanyMainBundle:Image'); То як я можу це заявити у своєму services.yml? Ось послуга: namespace Mycompany\MainBundle\Service\Image; use Doctrine\ODM\MongoDB\DocumentRepository; class ImageManager { private $manipulator; private $repository; public function __construct(ImageManipulatorInterface $manipulator, DocumentRepository $repository) { $this->manipulator …

3
Введення залежностей у фільтри дій ASP.NET MVC 3. Що поганого в такому підході?
Ось установка. Скажімо, у мене є якийсь фільтр дій, який потребує екземпляра служби: public interface IMyService { void DoSomething(); } public class MyService : IMyService { public void DoSomething(){} } Потім у мене є ActionFilter, який потребує екземпляра цієї служби: public class MyActionFilter : ActionFilterAttribute { private IMyService _myService; // …

4
Як використовувати log4net із ін’єкцією залежностей
Я намагаюся зрозуміти, яким правильним є шаблон і використання log4net у рамках інжекції залежностей. Log4Net використовує інтерфейс ILog, але вимагає від мене зателефонувати LogManager.GetLogger(Reflection.MethodBase.GetCurrentMethod().DeclaringType) у кожному класі або методі, де мені потрібно реєструвати інформацію. Здається, це суперечить принципам IoC і змушує мене використовувати Log4Net. Чи я повинен якось вкласти десь …


5
Введення залежності та іменовані реєстратори
Мені цікаво дізнатись більше про те, як люди вводять реєстрацію за допомогою платформ для введення залежностей. Незважаючи на те, що посилання нижче та мої приклади стосуються log4net та Unity, я не обов'язково буду використовувати жоден із них. Для введення залежностей / IOC я, ймовірно, буду використовувати MEF, оскільки це стандарт, …

1
Як налаштувати параметри додатків у службі .Net Core 3 Worker
Я переглянув декілька навчальних посібників та запитань щодо SO (наприклад, Налаштування додатків. Net Core ) щодо читання appsettings.json в .Net Core 3, і не можу знайти жодних вказівників щодо того, як користуватися службою Worker. Не існує методу запуску. Натомість у мене є Program.cs з основним методом: public class Program { …

2
Яка різниця між наданням та ін'єкцією "Window" проти Window у кутовій 8 та 9?
У мене є два кутові проекти, які використовують такі версії: 9.0.0-наступний.6 8.1.0 У версії 9 я використовував це для надання та введення windowоб'єкта: @NgModule({ providers: [ { provide: Window, useValue: window }, ] }) export class TestComponent implements OnInit { constructor(@Inject(Window) private window: Window) } Що чудово працює. Використовуючи такий …

3
Чи існує надійний спосіб зареєструвати залежності в ASP.NET Core 3.1, окрім додавання всього до класу запуску?
У мене є проект ASP.NET Core 3.1. Як правило, я реєструю будь-яку залежність, використовуючи ConfigureServices()метод у Startup.csкласі. Але я вважаю, що мені потрібно зареєструвати багато залежностей, і ConfigureServices()виглядає це величезно! Я знаю, що, ймовірно, я можу створити метод розширення статичного методу і викликати його з класу ConfigureService () `, але …

3
Фабричні методи проти ін'єкційних фреймворків у Python - що чистіше?
Що я зазвичай роблю в своїх додатках - це те, що я створюю всі свої послуги / дао / репо / клієнтів, використовуючи заводські методи class Service: def init(self, db): self._db = db @classmethod def from_env(cls): return cls(db=PostgresDatabase.from_env()) І коли я створюю додаток, я це роблю service = Service.from_env() що …

2
Як вводити або використовувати IConfiguration у функції Azure V3 з введенням залежності, під час налаштування служби
Зазвичай у проекті .NET Core я створив би клас «boostrap» для налаштування мого сервісу разом із командами реєстрації DI. Зазвичай це метод розширення, IServiceCollectionде я можу назвати такий метод, .AddCosmosDbServiceі все необхідне є "автономним" у статичному класі, що містить цей метод. Ключове, однак, полягає в тому, що метод отримує значення …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.