«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу вручную разрешить сервис ASP.NET Core в `configureersers`?

Как я могу вручную разрешить сервис ASP.NET Core в `configureersers`?

Опубликовано в 2025-03-22
Просматривать:726

How Can I Manually Resolve ASP.NET Core Services in `ConfigureServices`?

вручную проанализируйте сервис Core Asp.net в configureservices Метод

Configureservices

в ядро ​​ASP.NET, используемое для настройки контейнеров впрыскивания зависимости, не предоставляет метод для служб непосредственно анализирующих. Чтобы вручную проанализировать сервис из этого метода, требуется альтернативный метод. ]

режим поставщика услуг

для Parse Services, ASP.NET Core использует шаблон поставщика услуг. После того, как коллекция услуг будет создана, он преобразуется в экземпляр

iserviceProvider , позволяющий анализировать службу. ]

поставщик услуг инъекции ]] Одним из способов анализа услуги является внедрение

iserviceProvider

экземпляр в конструктор класса Startup . Тем не менее, этот подход обеспечивает только доступ к ограниченным необходимым услугам, введенным в хостинговый уровень. ]

Использовать Applicationservices

]] в Method

Configure

, iApplicationBuilder предоставляет свойство ApplicationServices , которое содержит поставщик услуг, который может получить доступ ко всем зарегистрированным услугам. ]

public void configure (приложение iApplicationBuilder) { var serviceprovider = app.applicationservices; var fooservice = serviceprovider.getService (); }
public void Configure(IApplicationBuilder app)
{
    var serviceProvider = app.ApplicationServices;
    var fooService = serviceProvider.GetService();
}
построить промежуточный поставщик услуг

]] , чтобы проанализировать службу в методе

configureservices

, вы можете построить промежуточный поставщик услуг из частично построенной коллекции услуг. Тем не менее, это включает в себя только услуги, зарегистрированные до этого. ]

public void configureservices (iServiceCollection Services) { Services.Addsingleton (); var sp = services.buildServiceProvider (); var fooservice = sp.getService (); }
public void Configure(IApplicationBuilder app)
{
    var serviceProvider = app.ApplicationServices;
    var fooService = serviceProvider.GetService();
}
избегает ручного анализа

] Ручные службы разбора обычно не рекомендуются, потому что это нарушает принцип инъекции зависимостей. Вместо этого используйте инъекцию или используйте инъекцию поставщика услуг в методе

Configure

. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3