Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 温莎城堡-价值注入_C#_.net_Castle Windsor - Fatal编程技术网

C# 温莎城堡-价值注入

C# 温莎城堡-价值注入,c#,.net,castle-windsor,C#,.net,Castle Windsor,温莎城堡能做价值注入吗 例如,假设我有一个员工的模型对象,其属性我希望自动映射到描述MVC视图的接口 我希望在模型数据更改时,Employee.FirstName可以自动设置为IEEmployeeView.FirstName 现在我正在使用,但是如果Windsor能够做到的话,我想放弃对程序集的依赖。(我已经在为IoC和其他AOP东西使用Windsor)可以使用Windsor(或任何其他IoC容器),但IoC容器更适合管理服务,而不是数据容器。如果您试图这样管理数据,您迟早会落入服务定位器陷阱

温莎城堡能做价值注入吗

例如,假设我有一个员工的模型对象,其属性我希望自动映射到描述MVC视图的接口

我希望在模型数据更改时,Employee.FirstName可以自动设置为IEEmployeeView.FirstName


现在我正在使用,但是如果Windsor能够做到的话,我想放弃对程序集的依赖。(我已经在为IoC和其他AOP东西使用Windsor)

可以使用Windsor(或任何其他IoC容器),但IoC容器更适合管理服务,而不是数据容器。如果您试图这样管理数据,您迟早会落入服务定位器陷阱


ValueInjector的合适替代方案是。

您应该查看MEF()。它内置于.NET 4.0中。

我刚刚知道他们有一个用于自动布线事件的工具:我想他们可能有类似的属性。AutoMapper仍然是另一个组件,我更喜欢ValueInjector,因为它看起来更简单。似乎Windsor没有我所需要的ValueInjector功能(有道理b/c,它与IoC无关)。如果有一段时间没有人发帖,我会把你标记为答案。ValueInjector比AutoMapper更容易使用。涉及的设置要少得多。您可以在需要时根据需要对其进行自定义。我还想说明,当数据更改时,我仅使用ValueInjector在视图界面上设置属性。当温莎提供不同的服务时,这种情况不会发生。如果需要的话,我可以发布一个控制器的例子。我有时不直接使用ValueInjector,但它有IBuilder接口和实现,这一切都是由Windsor解决的,我在这里使用这种技术:我使用过MEF,但了解到它的功能不如Castle Windsor。MEF是否具有我需要的“值注入器”功能?