1
我正在分析使用Ninject for DI的應用程序。隨着時間的推移,我看到很多BindingBuilder類的實例,它用於定義容器中定義的對象。.NET內存分析/泄漏風險/ Ninject/Direct委託根
Ninject的「ToMethod」綁定用於定義容器中的所有對象。訪問內核的lamba中可用的上下文然後用於從容器中檢索其他對象。例如:
Bind<IService>()
.ToMethod(ctx => new CustomService(
ctx.Kernel.GetDefault<IOtherService>(),
ctx.Kernel.GetDefault<IAnotherService>()
))
.InSingletonScope();
看到BindingBuilders隨着時間增加還是應該只存在一次是正常行爲?
感謝您的支持。我們擁有它的原因是我們已經命名了我們特別想要注入的實例,因此我們可以爲給定的接口定義兩個具有不同名稱的實現。我們如何讓Ninject決定在這種情況下使用的? –
這是一個完全不同的故事,取決於有多個實現的原因。 這個問題的答案是沒有BindingBuilder沒有內存泄漏。 –
這很好,我推測不會有。你期望通過BindingBuilder路由看到匿名類的漸進式構建嗎?你有沒有任何關於命名實例的指導和注入這些實例的最佳方法。我認爲我們正在使用推薦的方法,但他們可能是一個更好的方法來做到這一點? –