вручную проанализируйте сервис Core Asp.net в configureservices
Метод
в ядро ASP.NET, используемое для настройки контейнеров впрыскивания зависимости, не предоставляет метод для служб непосредственно анализирующих. Чтобы вручную проанализировать сервис из этого метода, требуется альтернативный метод.
]
режим поставщика услуг
для Parse Services, ASP.NET Core использует шаблон поставщика услуг. После того, как коллекция услуг будет создана, он преобразуется в экземпляр iserviceProvider , позволяющий анализировать службу.
]
поставщик услуг инъекции ]] Одним из способов анализа услуги является внедрение
iserviceProvider экземпляр в конструктор класса Startup
. Тем не менее, этот подход обеспечивает только доступ к ограниченным необходимым услугам, введенным в хостинговый уровень. ]
]] в Method
Configure, iApplicationBuilder
предоставляет свойство ApplicationServices
, которое содержит поставщик услуг, который может получить доступ ко всем зарегистрированным услугам. ]
public void Configure(IApplicationBuilder app)
{
var serviceProvider = app.ApplicationServices;
var fooService = serviceProvider.GetService();
}
построить промежуточный поставщик услуг ]] , чтобы проанализировать службу в методе
configureservices, вы можете построить промежуточный поставщик услуг из частично построенной коллекции услуг. Тем не менее, это включает в себя только услуги, зарегистрированные до этого. ]
public void Configure(IApplicationBuilder app)
{
var serviceProvider = app.ApplicationServices;
var fooService = serviceProvider.GetService();
}
избегает ручного анализа ] Ручные службы разбора обычно не рекомендуются, потому что это нарушает принцип инъекции зависимостей. Вместо этого используйте инъекцию или используйте инъекцию поставщика услуг в методе
Configure. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3