1

當您需要調用特定的構造函數時,Unity的InjectionConstructor可以很好地工作,因爲您有特定的依賴關係(例如,任何外部依賴項,命名註冊或未命名註冊的混合),但需要指定所有參數。有沒有辦法暗示Unity應該使用哪個構造函數?

是否有某種方式來增強團結的「查找和使用構造數最多的參數」和「查找和使用最大量的參數的構造函數,可能某處接受IX實例簽名」?

+2

我不知道,你可以做這樣的直接什麼,但也許你可以從InjectionConstructor派生並覆蓋其'AddPolicies'方法? –

+0

如果可以,請阻止您的服務類具有多個公共構造函數的設計。這使得設計更加清潔,並且作爲更多DI友好的副作用。 – Steven

+0

@Steven - 完全同意。在這種情況下,我其實只有一個。我猜*補充*是錯誤的詞。或者說我需要的東西之間* *明確('InjectionConstructor')和* *隱(不使用'InjectionConstructor'在所有)更有意義。 – Kit

回答

1

馬克的評論提供了答案的基礎。也就是說,中AddPolicies

  • 實施必須找到匹配的所有值(明確的),我進入的InjectionConstructor構造函數的構造函數。有一些限制(例如,如果值爲空,或者它們與構造函數中的父類型匹配),並且對於其餘(隱式)類型,則使用容器來解析它們。

我不是說這是好的。我最終在其他地方使用了RegisterInstance,混合參數需求消失了。但對於那些可能需要它的人來說,這是一個解決方案。

相關問題