簡體   English   中英

ASP.NET 5 MVC 6 DI:ServiceProvider無法解析類型

[英]ASP.NET 5 MVC 6 DI: ServiceProvider not resolving type

在下面的代碼中, serviceProvider.GetService<DocumentDbConnection>()正在解析為null

public void ConfigureService(IServiceCollection services)
{
    var serviceProvider = services.BuildServiceProvider();

    services.AddSingleton<DocumentDbConnection>(
        x => new DocumentDbConnection(uri, authKey));

    // service is null?
    var connection = serviceProvider.GetService<DocumentDbConnection>();

    services.AddTransient<IStopRepository, StopRepository>(
        x => new StopRepository(connection, databaseId, collectionId));
}

為什么會這樣? 在調用GetService之前注冊了類型,所以它是否應該解析為單例?

注冊DocumentDbConnection 之前,您正在構建服務提供者。 您應該首先注冊您需要的服務。 然后, BuildServiceProvider將構建一個服務提供者,其中注冊的服務在此之前:

services.AddSingleton<DocumentDbConnection>(x => new DocumentDbConnection(uri, authKey));
var serviceProvider = services.BuildServiceProvider();

// code using serviceProvider

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM