0

在我的 .NET Core 3.1Startup.cs中,我试图获取已注册类型的实例,即IBusinessLogicusing IServiceCollection,但它不起作用。

如何在 .NET Core 3.1 中获取已注册类型的实例?

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {    
        container.Register<IBusinessLogic, BusinessLogic>();

        container.AddSingleton<Func<string, string>>
            ((username, password) => new JWTCache(userId, password, 
            container.GetInstance<IBusinessLogic>())); //container.GetInstance<IBusinessLogic>() not working
    }
}
4

1 回答 1

3

您需要使用为您提供的重载IServiceProvider

container.AddSingleton<Func<string, string>>(
    sp => (username, password) => new JWTCache(userId, password, sp.GetRequiredService<IBusinessLogic>())
);
于 2021-11-20T13:41:02.850 回答