[英]Constructor injection with Quartz.NET and Simple Injector
[英]Simple Injector: Automatic constructor injection recursion
我試圖了解如何在SimpleInjector.NET中完成自動構造函數注入。 我的工作源代碼來自“代碼項目”文章(v1.5.0.12199)。
我查看了Container的GetInstance)()代碼以及InstanceProducer的GetInstance()代碼,但是在任何地方都看不到任何遞歸調用。
有人可以指出構造函數自動注入的遞歸發生在哪里嗎?
從版本v1.5到當前的v2.5框架,容器進行了大量更改。 我不記得在舊版本中是如何完成確切的事情的,但這就是當前v2.5版本中發生的事情(將來,事情可能會發生變化,因為它們是實現細節)。
如果要查看發生這種情況的方法,則需要轉到Registration
類的私有BuildConstructorParameters
方法(再次注意,我在這里談論的是v2.5源代碼)。 此方法調用Type.GetParameters
並對其進行迭代,並向配置的IConstructorInjectionBehavior
類型詢問參數的表達式。 DefaultConstructorInjectionBehavior
將調用Container.GetRegistration
為該參數獲取正確的InstanceProducer
,從而關閉循環。
因此,完整的堆棧跟蹤將是這樣的(從上到下的順序):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.