温莎城堡可以做值注射吗?温莎城堡 - 价值注入
例如,假设我有一个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