servicestack,Ninject,servicestack" /> servicestack,Ninject,servicestack" />

ServiceStack-使用Ninject而不是Funq

ServiceStack-使用Ninject而不是Funq,ninject,servicestack,Ninject,servicestack,我正在尝试将ServiceStack与Ninject而不是Funq一起使用。我有以下资料: public interface IContainerAdapter { T Resolve<T>(); T TryResolve<T>(); } public class NinjectIocAdapter : IContainerAdapter { private readonly IKernel kernel; public Ninject

我正在尝试将ServiceStack与Ninject而不是Funq一起使用。我有以下资料:

public interface IContainerAdapter
{
    T Resolve<T>();
    T TryResolve<T>();
}

public class NinjectIocAdapter : IContainerAdapter
{
    private readonly IKernel kernel;

    public NinjectIocAdapter(IKernel kernel)
    {
        this.kernel = kernel;
    }

    public T Resolve<T>()
    {
        return this.kernel.Get<T>();
    }

    public T TryResolve<T>()
    {
        return this.kernel.TryGet<T>();
    }
}
但我得到了以下错误:

无法将类型“NinjectionAdapter”隐式转换为“ServiceStack.Configuration.IContainerAdapter”。

我也不确定是否必须取消注释该行才能将MVC设置为使用Funq IoC?我已经把它注释掉了,因为我将使用Ninject。对吗

我想一旦这一切都起作用了。我可以简单地在以下内容中注册任何依赖项:

private static void RegisterServices(IKernel kernel)
{

}   
代码完全匹配,但有一个细微的差别

您必须使用
ServiceStack.Configuration.IContainerAdapter
而不是您自己的
IContainerAdapter

删除您的实现,添加对
ServiceStack.Configuration
的引用,您就可以了

private static void RegisterServices(IKernel kernel)
{

}