【发布时间】:2013-02-05 11:31:57
【问题描述】:
在我的NinjectWebCommon.cs 文件中,在CreateKernel 方法下,我正在应用这样的注入
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
// Web API Injection
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
// SignalR Injection
GlobalHost.DependencyResolver = new SignalR.Ninject.NinjectDependencyResolver(kernel);
return kernel;
}
我在想应该为我做这件事,但我在 SignalR 注入时不断收到错误
“无法将类型'SignalR.Ninject.NinjectDependencyResolver'隐式转换为'Microsoft.AspNet.SignalR.IDependencyResolver'”
知道问题出在哪里吗?
【问题讨论】:
-
我不确定两者是否兼容,但您可以在执行分配时尝试将依赖解析器类型转换为
(Microsoft.AspNet.SignalR.IDependencyResolver)。 -
它确实消除了错误,但 ninject 依赖注入不起作用。从我看到的帖子来看,这种类型转换一开始就不应该是必要的......不知道问题是什么
-
你确定你的
NinjectDependencyResolver继承自Microsoft.AspNet.SignalR.IDependencyResolver吗?可以贴一下代码吗? -
我对 SignalR 一点也不熟悉,您在演员表的一侧使用“I”接口,而在另一侧使用“真实对象”。是否有“I”NinjectDependencyResolver?
-
@AlexG SignalR.Ninject.NinjectDependencyResolver 由 SignalR.Ninject 库提供,所以我只是使用它。是的,它继承自 DefaultDependencyResolver,而 DefaultDependencyResolver 又继承自 IDependencyResolver
标签: c# asp.net asp.net-mvc ninject signalr