溫莎城堡可以做值注射嗎?溫莎城堡 - 價值注入
例如,假設我有一個Employee屬性的模型對象,我想要自動映射到描述View for MVC的接口。
我希望當我的模型數據發生變化時,Employee.FirstName被設置爲自動設置爲IEmployeeView.FirstName。
現在我正在使用ValueInjecter,但是如果溫莎能做到這一點,我想放棄對程序集的依賴。 (我已經使用溫莎的IoC和AOP其他東西)
溫莎城堡可以做值注射嗎?溫莎城堡 - 價值注入
例如,假設我有一個Employee屬性的模型對象,我想要自動映射到描述View for MVC的接口。
我希望當我的模型數據發生變化時,Employee.FirstName被設置爲自動設置爲IEmployeeView.FirstName。
現在我正在使用ValueInjecter,但是如果溫莎能做到這一點,我想放棄對程序集的依賴。 (我已經使用溫莎的IoC和AOP其他東西)
可能可以與溫莎做到這一點(或與此有關的任何其他IoC容器),但IoC容器更適合管理服務,不是數據容器。如果您嘗試管理這樣的數據,您可能會遲早會陷入服務定位器陷阱。
ValueInjecter的適當替代方案是AutoMapper。
我剛剛知道他們的設施有自動佈線事件:http://www.castleproject.org/container/facilities/v1rc3/eventwiring/index.html我認爲他們可能有類似的屬性。 AutoMapper仍然是另一個程序集,我喜歡ValueInjecter,因爲它看起來更簡單。 – jonathanpeppers 2011-02-07 15:47:39
您應該查看MEF(http://mef.codeplex.com/)。它構建在.NET 4.0中。
我也想評論說,當數據改變時,我只使用ValueInjector來設置View界面的屬性。當溫莎找到不同的服務時不會發生這種情況。如果需要,我可以發佈一個控制器的例子。 – jonathanpeppers 2011-02-07 15:55:05
我有時不直接使用ValueInjecter,但有IBuilder接口和它的實現,這一切都由Windsor解決,我在這裏使用這種技術:http://prodinner.codeplex.com –
Omu
2011-04-30 17:47:19