在尝试将 ServiceStack.net 配置为使用 Ninject 作为其 IOC 时,我收到了有关未定义各种绑定的错误。主要用于 ICache 客户端。
需要创建哪些特定绑定才能正确使用 Ninject?
目前已指定:
Bind<ISessionFactory>().To<SessionFactory>();//Is this correct/needed?
笔记
我根据 ServiceStack 文档创建了一个 IContainerAdapter 来实现 Ninject 的使用。(在这里找到:ServiceStack IOC 文档)
注 2 我的 apphost 配置方法如下所示:
public override void Configure(Funq.Container container)
{
IKernel kernel = new StandardKernel(new BindingModule());
container.Adapter = new NinjectContainerAdapter(kernel);
}
注3
我已按如下方式注册了 ICacheClient: Bind().To();
我现在收到指向 IRequest 的错误
Error activating IRequestLogger\nNo matching bindings are available, and the type is not self-bindable
容器适配器
public class NinjectContainerAdapter : IContainerAdapter
{
private readonly IKernel _kernel;
public NinjectContainerAdapter(IKernel kernel)
{
this._kernel = kernel;
}
public T TryResolve<T>()
{
return this._kernel.Get<T>();
}
public T Resolve<T>()
{
return this._kernel.Get<T>();
}
}