Я получаю ошибку 500 при попытке получить доступ к объекту Я впрыскиваемого с помощью services.AddSingleton<>()
в методе ConfigureServices
в Startup.cs
:Не удалось разрешить услугу типа «АБВ»
Не удалось разрешить услугу типа proj.Auth.IAuthProvider
для параметра authProvider
метода Configure
по типу proj.Startup
.
Насколько я могу сказать, глядя на "рабочие" образцы кода это должно работать ...
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<AppSettings>(Configuration);
services.AddSingleton<IAuthProvider, TranslatorAuthProvider>();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAuthProvider authProvider)
{
...
app.Run(async context =>
{
await authProvider.GetToken();
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
TranslatorAuthProvider.cs:
namespace proj.Auth
{
public class TranslatorAuthProvider : IAuthProvider
{
public TranslatorAuthProvider(IHttpContextAccessor httpContextAccessor, IOptions<AppSettings> settings)
{
...
}
public async Task<OAuthToken> GetToken()
{
...
}
}
}
IAuthProvider.cs:
namespace proj.Auth
{
public interface IAuthProvider
{
Task<OAuthToken> GetToken();
}
}