"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso resolver manualmente o ASP.NET Core Services em 'Configureservices'?

Como posso resolver manualmente o ASP.NET Core Services em 'Configureservices'?

Postado em 2025-03-22
Navegar:373

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

analisar manualmente asp.net Service Core em ConfigureServices O método

ConfigureServices

no asp.net Core usado para configurar os contêineres de injeção de dependência não fornece um método para analisar diretamente os serviços. Para analisar manualmente o serviço deste método, é necessário um método alternativo.

Modo do provedor de serviços

Para analisar os serviços, asp.net Core usa o padrão do provedor de serviços. Após a construção da coleção de serviços, ela é convertida em uma instância

iserviceProvider , permitindo que o serviço seja analisado.

provedor de serviços de injeção ] Uma maneira de analisar um serviço é injetar a instância

iserviceProvider

no construtor da classe startup . No entanto, essa abordagem fornece apenas acesso aos serviços limitados necessários injetados pela camada de hospedagem.

Use ApplicationServices

] No método

configure

, o iapplicationBuilder fornece a propriedade ApplicationServices , que contém um provedor de serviços que pode acessar todos os serviços registrados.

public void Configure (aplicativo iApplicationBuilder) { var ServiceProvider = App.Applicationservices; var fooservice = serviceProvider.getService (); }
public void Configure(IApplicationBuilder app)
{
    var serviceProvider = app.ApplicationServices;
    var fooService = serviceProvider.GetService();
}
construir provedor de serviços intermediários

] Para analisar um serviço no método

ConfigureServices

, você pode criar um provedor de serviços intermediário a partir de uma coleção parcialmente construída de serviços. No entanto, isso inclui apenas serviços registrados antes disso. • { Serviços.addsingleton (); var sp = Services.BuildServiceProvider (); var fooservice = sp.getService (); }

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton();

    var sp = services.BuildServiceProvider();
    var fooService = sp.GetService();
}
]

Os serviços de análise manual geralmente não são recomendados porque viola o princípio da injeção de dependência. Em vez disso, use injeção ou utilize a injeção do provedor de serviços no método configure .

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3