雖然這個問題看起來有點奇怪。我仍然在碰巧加入一個新項目。該項目大量使用溫莎城堡 IoC。初始化后檢查容器告訴我一些實現已注冊為其他實現,LifeStyle.Transient而其他實現已注冊LifeStyle.Singleton。他們的自定義引導代碼搜索程序集并進行基于約定的注冊,但沒有提及生活方式。那么注冊組件在生活方式上有何不同呢?溫莎城堡有一些神奇的命名約定嗎?例如:一對IFooManagerandFooManager將成為單身人士,而IFooandFoo將獲得短暫的生活方式....(僅歸功于 *Manager)。正如評論所要求的那樣,這是在所有 /somehow enumerated/ 程序集上循環執行的核心注冊: var assembly = Assembly.LoadFrom(fileName);
container.Register(Classes.FromAssembly(assembly).Pick()
.If(t => TypeIsInNamespaces(includeNamespaces, t) && GetInterfacesOfType(t, includeNamespaces).Any())
.WithService.Select((t, baseT) => GetInterfacesOfType(t, includeNamespaces)).Configure(c => c.Named(GetName(c.Implementation))));
溫莎城堡是否有一個命名約定來自動判斷生活方式?
慕田峪9158850
2022-07-23 16:19:00