加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖项 – 注入IoC容器?

发布时间:2020-12-13 20:47:12 所属栏目:百科 来源:网络整理
导读:我整个上午一直在研究寻找访问IoC的最佳实践.在将构造函数注入添加到类之后,您仍然需要从可能位于应用程序对象图深处的类中访问contianer.在我的情况下,我在 WPF中做MVVM,我的一些View Models需要创建其他View Models,他们会使用容器来做到这一点.但问题是他
我整个上午一直在研究寻找访问IoC的最佳实践.在将构造函数注入添加到类之后,您仍然需要从可能位于应用程序对象图深处的类中访问contianer.在我的情况下,我在 WPF中做MVVM,我的一些View Models需要创建其他View Models,他们会使用容器来做到这一点.但问题是他们从何处获取容器.注入并传递它是否有意义?是否可以使其成为可注射的单身人士?供应单身人士的工厂更适合吗?

选项和权衡是什么?

更新

我发现Matt Hinze的这个很棒的演讲涵盖了很多IoC的基础:http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2010/04/08/inversion-of-control-in-action-by-matt-hinze-north.aspx

看起来一个答案是使用扫描功能并将IoC配置存储在每个程序集中的注册表中,然后在扫描期间将添加这些注册表配置.

还有其他方法需要考虑吗?特别是考虑到Matt演示了使用ServiceLocator模式,而Mark Seeman称之为反模式.请注意,Matt警告不要过度使用该模式,并且Mark对服务定位器的定义(http://blog.ploeh.dk/Trackback.aspx?guid=5f05c086-295b-41e5-a50a-ed0cd77ac4bd)似乎与Matt演示的不同.

如您所说,您可以将工厂注入到顶级ViewModel,而不是注入实际的ViewModel实例,这很难.它有点像服务定位器模式,期望工厂(或服务提供商,或者你有什么)将更具体地提供他们可以提供的服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读