私は.net core web apiで私の手を試しています。あなたが見ることができるように私は私がDbContextに渡す私のConnectionStringを、含まれている私の設定クラスを解決したい、.netコアの注入と解決のサービス
public static class RegistrationExtensions
{
public static void RegisterApplicationServices(this IServiceCollection services, IServiceProvider serviceProvider)
{
services.RegisterSingletons();
services.RegisterRequests();
services.RegisterTransient(serviceProvider);
}
public static void RegisterSingletons(this IServiceCollection services)
{
services.AddSingleton<Configuration>();
}
public static void RegisterRequests(this IServiceCollection services)
{
services.AddScoped<ISettingsService, SettingsService>();
}
public static void RegisterTransient(this IServiceCollection services, IServiceProvider serviceProvider)
{
var config = serviceProvider.GetService<Configuration>();
services.AddDbContext<InteractiveChoicesContext>(m => m.UseSqlServer(config.ConnectionString));
}
}
:私はこのように私のコントローラを登録するための静的メソッドを作成しました。 構成を解決するをRegisterApplicationServicesメソッドに注入しようとしていました。
は、このメソッドを呼び出すには、私は スタートアップクラスの ConfigureServicesはこれにを変更:public void ConfigureServices(IServiceCollection services, IServiceProvider serviceProvider)
{
services.AddMvc();
services.RegisterApplicationServices(serviceProvider);
}
をしかし、私は自分のアプリケーションを実行すると、私はエラーを取得:
The ConfigureServices method must either be parameterless or take only one parameter of type IServiceCollection.
エラーを明らかです。私の質問は、設定クラスを私のRegisterTransientの方法で解決するにはどうすればいいですか?
スタートアップクラスは、IConfiguration型の構成プロパティを持って後世と関連性のためにそのまま含まれています。それはあなたが必要とするものですか?あるいは、あなた自身のConfigurationクラスについて話していますか? – CodeFuller