ConfigureServicesメソッド(Startup.cs)のASP.NET Core 1.0アクセスサービス

asp.net-core-1.0 c# entity-framework-core

質問

基本的な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
}


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ