gpt4 book ai didi

c# - ASP.NET Core 1.0 在ConfigureServices方法(Startup.cs)中访问服务

转载 作者:行者123 更新时间:2023-11-30 12:22:33 25 4
gpt4 key购买 nike

基本的 ConfigureServices 方法如下所示:

public void ConfigureServices(IServiceCollection services)
{

services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();

services.AddMvc();

services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();

//custom logic here
}

在方法结束之前,我想运行一些自定义逻辑。但是我需要访问 ApplicationDbContext 并从那里获取一些配置。另一件事是我想使用 AuthMessageSenver 服务发送电子邮件。

我的问题:如何访问我在同一方法中声明的服务。或者我如何使用我的 ApplicationdDbContext 从数据库中获取数据。

最佳答案

您可以使用BuildServiceProvider 方法来解析服务:

public void ConfigureServices(IServiceCollection services)
{
//...
services.AddTransient<IEmailSender, AuthMessageSender>();
//...

var provider = services.BuildServiceProvider();
var emailSender= provider.GetService<IEmailSender>();
// use emailSender
}

关于c# - ASP.NET Core 1.0 在ConfigureServices方法(Startup.cs)中访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40714890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com