asp.net-mvc - 模型的依赖注入(inject)

标签 asp.net-mvc dependency-injection ninject custom-model-binder repository-design

我确信以前有人问过这个问题,但我很难找到在哪里。

我正在使用 Ninject 以及存储库设计模式来删除 Controller 中的依赖项。

据我了解,这种方法的好处之一是,如果我愿意,我可以轻松地分解我的存储库和域实体并使用另一个程序集。因此,我将域实体和存储库保留在外部程序集中,并且可以从接口(interface)模拟所有依赖项。

虽然我可以在大多数地方使用接口(interface)来引用我的域实体,但在模型绑定(bind)方面我必须使用对我的具体类的引用。我读到这与我理解的序列化有关,但这是避免引用域实体来创建单独模型的唯一方法吗?

我可以使用自定义模型绑定(bind)做什么?

一些背景知识:我是一位经验丰富的 ASP.net 开发人员,但对 MVC 还很陌生。

最佳答案

View 模型应该是没有逻辑的普通数据容器,因此根本不应该有任何依赖关系。相反,将存储库注入(inject)到您的 Controller 中,并让它将存储库中所需的数据分配给 View 模型的适当属性。

关于asp.net-mvc - 模型的依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8049071/

相关文章:

c# - 为什么 Controller.UpdateModel 不使用单元测试中的全局化验证属性验证模型?

java - <android.arch.lifecycle.ViewModel>> 不能在没有@Provides-annotated 方法的情况下提供

asp.net-mvc-3 - 使用 Ninject 将参数传递给 Controller ​​构造函数

PHP Dependency Injection 是一个不错的设计,但我无法从 IDE 获得 Intellisense?

dependency-injection - 如何使用 Ninject 处理具有静态方法的类?

c# - 使用 Ninject 将通用接口(interface)绑定(bind)到存储库时获取 "MissingMethodException: Cannot create an instance of an interface"

asp.net-mvc - 如何使用 mvc View 来填充 Bootstrap 选项卡?

c# - 在 Controller 外设置 ViewData

asp.net-mvc - AOP vs MVC FilterAttributes vs Interceptors

javascript - 如何识别 javascript 中函数的参数名称?