gpt4 book ai didi

c# - View 模型的构造函数或属性注入(inject)?

转载 作者:行者123 更新时间:2023-11-30 19:39:09 34 4
gpt4 key购买 nike

我最近发布了一个关于 Ninject 未注入(inject)预期的问题 IList<T> 在调用返回 IList<T> 的存储库方法时 到 View 模型构造函数中,给出的答案是注入(inject)某种存储库等。

但是,我已经在某处读到,将存储库等注入(inject) View 模型的构造函数被认为是一种反模式(但不记得是什么原因)。

先生。 Dave Thieben说如果我按照在 MVC 或 MVP 中应该使用的方式使用 ViewModel 模式,则 View 模型不应将依赖项注入(inject)其构造函数,而是应通过 Controller 或演示器中的属性注入(inject)来填充。

遵循“准确注入(inject)该类履行其职责所需的内容”的规则,ViewModel 列表所需要的只是一个基于所管理内容的用户对象列表。那么,为什么不通过构造函数注入(inject)立即注入(inject)它,而是通过属性注入(inject)来注入(inject)呢?

最佳答案

简单明了, View 模型应该不知道你的存储库;换句话说,它不应该依赖于您的存储库,无论您如何注入(inject)它。

你的存储库应该被注入(inject)到你的 Controller 中,你的 Controller 应该设置 View 模型的属性,执行任何必要的查询。关键是这里的actor需要是你的controller,而不是你的view model。 View 模型是一个被动类,仅用于保存 View 所需的数据,而 Controller 的实际工作是连接所有内容、发出查询等以根据需要获取数据。

关于c# - View 模型的构造函数或属性注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29219067/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com