[英]How to configure SSL on AppHarbor with ServiceStack.net web services
[英]How to configure Ninject to work with ServiceStack.net
在嘗試配置ServiceStack.net以使用Ninject作為其IOC時,我收到的錯誤是指未定義的各種綁定。 主要用於ICache客戶端。
需要創建哪些特定綁定才能正確使用Ninject?
目前已指定:
Bind<ISessionFactory>().To<SessionFactory>();//Is this correct/needed?
注意
我根據ServiceStack文檔創建了一個IContainerAdapter來實現Ninject的使用。 (在此處找到: ServiceStack IOC Docs )
注意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>();
}
}
你有沒有注入你的容器適配器:
container.Adapter = new NinjectIocAdapter(kernel);
如果是這樣,如果您還沒有這樣做,請嘗試將您的AppHost類設為內部 。 應該只有1個AppHost實例,而一些IOC喜歡創建自己的實例,從第一個實例中刪除所有配置。
你得到的行為聽起來像Ninject抱怨未解決的依賴關系。 通過在容器適配器中使用kernal.TryGet<T>
,確保讓Ninject返回null與未解析的依賴關系,例如:
public T TryResolve<T>()
{
return this._kernel.TryGet<T>();
}
您需要編寫自己的IContainerAdapter,然后在AppHost中設置Container.Adapter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.