![](/img/trans.png)
[英]How can I compare two version numbers that are strings in the format x.y.z?
[英]Could not resolve a service of type 'x.y.z'
當我嘗試訪問使用Startup.cs
的ConfigureServices
方法中的services.AddSingleton<>()
注入的對象時出現500錯誤:
無法為類型proj.Auth.IAuthProvider
上的方法Configure
的參數authProvider
解析類型為authProvider
的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();
}
}
是的,這是預期的。 它無法解析IHttpContextAccessor
,因為IHttpContextAccessor
自最近以來未默認注冊(請參閱#190 )
您應該像這樣在ConfigureServices()
手動注冊它
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.