我繼承了一些代碼與自定義DI容器(需要移動到統一),這是基於屬性的像MEF 例如,統一擴展
[SERVICE]
PUBLIC <interface> myVar { get; set ; }
想知道是否已經有一個統一的擴展,我可以使用或可能幫助建立一個?
我繼承了一些代碼與自定義DI容器(需要移動到統一),這是基於屬性的像MEF 例如,統一擴展
[SERVICE]
PUBLIC <interface> myVar { get; set ; }
想知道是否已經有一個統一的擴展,我可以使用或可能幫助建立一個?
不清楚[SERVICE]
應該啓用什麼行爲。所以我猜:
開箱即用Unity支持Injection Attributes不同形式的依賴注入。你也可以做Attribute-Driven Policies方法攔截。
如果您可以靈活地更改注入的方式:首選模式是使用構造函數注入而不是屬性或服務定位器。它允許您從類中刪除對Unity的所有引用......這意味着您可以在不更改代碼的情況下再次更改容器。見Service Locator is an Anti-Pattern。
如果該SERVICEAttribute
標記爲由容器注入的屬性,則不僅僅是搜索替換整個代碼庫並將[SERVICE]
替換爲[Dependency
]。
DependencyAttribute是Unity爲依賴注入標記屬性的方法。
我同意ErnieL的說法,但是使用屬性是依賴注入領域的代碼氣味。使用該屬性是爲了允許將代碼移動到Unity,但不要使用[Dependency]
代替您編寫的任何新代碼,並且在重構舊代碼時將其刪除。
[服務]和注射服務一樣。 –