我的webapi vNext控制器中需要一个private static void RegisterServices(IKernel kernel) {
// Identity
kernel.Bind<IUserStore<ApplicationUser>>()
.To<UserStore<ApplicationUser>>()
.WithConstructorArgument("connectionNameOrUrl", "User.MongoDB");
kernel.Bind<UserManager<ApplicationUser>>()
.ToSelf()
.InRequestScope()
.WithConstructorArgument("store", ctx => ctx.Kernel.Get<IUserStore<ApplicationUser>>());
// Services
// Other
kernel
.Bind<IAzureSettings>()
.To<UserAzureSettings>()
.InRequestScope();
// Providers
kernel
.Bind<WebApiUserProvider>()
.ToSelf();
kernel
.Bind<MVCUserProvider>()
.ToSelf();
kernel
.Bind<IUserProvider>()
.ToMethod((ctx) => {
if (HttpContext.Current.Handler.GetType().Namespace.StartsWith("System.Web.Mvc")) {
return ctx.Kernel.Get<MVCUserProvider>(new Ninject.Parameters.IParameter[] { });
}
else {
return ctx.Kernel.Get<WebApiUserProvider>(new Ninject.Parameters.IParameter[] { });
}
})
.InRequestScope();
}
,因此我尝试使用构造函数注入它:
UrlHelper
在我的Startup.cs中,我添加了:
public BaseApiController(UrlHelper urlHelper)
但是当我运行它时,它会出错,因为它无法解析services.AddTransient<UrlHelper, UrlHelper>();
参数来实例化ActionContext
。所以我补充道:
UrlHelper
但后来我收到了错误:
services.AddTransient<ActionContext, ActionContext>();
有什么建议吗?
答案 0 :(得分:0)
原来我可以将Url.Link
用于我需要的内容,因此我根本不需要UrlHelper
。并不完全解决问题,但它对我有用。