Мне нужно добавить одноэлементный экземпляр AppSettings
в конструктор моего Startup
, там я установлю его начальное значение и затем будет введен в мои контроллеры MVC для использования ими. Фрагменты кода, как показано ниже.
public Startup(IConfiguration configuration, AppSettings appSettings)
{
Configuration = configuration;
appSettings.cacheDirPath = Path.Combine(Directory.GetCurrentDirectory(),
Configuration.GetValue<string>("GitLab:cache_dir_name"));
DirectoryInfo di = new DirectoryInfo(appSettings.cacheDirPath);
if (!di.Exists)
{
di.Create();
}
}
public AppSettings AppSettings { get; set; }
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSingleton<AppSettings>();
}
Неожиданно выдается следующее исключение:
2020-01-13 16:35:15.0945||ERROR|App.Program|Stopped program because of exception System.InvalidOperationException: Unable to resolve service for type 'App.AppSettings' while attempting to activate 'App.Startup'.
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass12_0.<UseStartup>b__0(HostBuilderContext context, IServiceCollection services)
at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
Как решить эту проблему?