![](/img/trans.png)
[英]Ninject: Injection of dependency IntPtr into parameter method of constructor
[英]Parameter name base dependency injection with Ninject
我試圖找到答案,可能搜索不好。 我發現的結果無濟於事,因此,如果您找到我要的答案,請指出我的力量方向。
我試圖基於名稱注入構造函數參數。
public class ReportController : Controller
{
public ReportController(IUOW replication)
{
}
}
public class NormalController : Controller
{
public NormalController(IUOW uow)
{
}
}
因此,在ninjectwebcommon文件中,我嘗試根據參數名稱為控制器初始化參數。 這是有效的綁定,但隨后所有指向同一實例。
kernel.Bind<IUOW>().ToConstructor(i => new UOW(new DatabaseContext()));
我嘗試了很多答案,但是一直失敗。 任何有關我搜索失敗的幫助或網址指南將不勝感激。 我想將工作單元綁定到復制數據庫上下文,否則要綁定到普通上下文。 我想說的是,內核應將名為復制的構造函數中的所有IUOW綁定到新的UOW(new ReplicationContext()),否則應綁定新的UOW(new DatabaseContext())
您是否嘗試過使用命名綁定? 在此處查看文檔:
https://github.com/ninject/Ninject/wiki/Contextual-Binding
public class ReportController : Controller
{
public ReportController([Named("replication")]IUOW replication)
{
}
}
public class NormalController : Controller
{
public NormalController([Named("uow")]IUOW uow)
{
}
}
然后,您將以這種方式綁定它們
kernel.Bind<IUOW>().ToConstructor(i => new UOW(new DatabaseContext())).Named("uow");
kernel.Bind<IUOW>().ToConstructor(i => new SomethingElse(new DatabaseContext())).Named("replication");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.