1

sorry if this is a silly question - I am going through an MVC 4 book, and I've come in grips with both IoC with ninject, and now custom model binding. Question is : If both are used to instantiate parameters in runtime, what's the real difference between one and the other; what am I missing here? Thanks :)

4

2 回答 2

2

对象创建不是模型绑定器的主要目的。事实上,模型绑定器使用 IoC 容器创建必要的对象并没有什么问题。

模型绑定器的目的是将 FormsCollection 数据(数据的名称/值对的集合)转换为填充了字段的对象。

IoC 容器不进行任何翻译。它只是创建您告诉它创建的内容。

因此,这里有一个关于每个工作原理的简短对话:

“嘿,ModelBinder..这里有一堆数据,想办法用它做什么” “对!看起来我需要一个新的 LoginModel,让我以某种方式创建一个,通过 Activator 或 IoC Container,然后填充它与我给出的数据相匹配的值。”

而 IoC 容器更像是:

“嘿,IoC 容器,我需要一个实现 IDatabase 的对象” “对!我通过配置中的映射看到 IDatabase 接口映射到 DatabaseInstance 对象,所以我将为您创建一个新的,然后您就可以了"

于 2013-09-22T21:43:41.210 回答
1

活页夹是客户端用户输入和服务器处理之间的桥梁。活页夹让您可以在更高级别上工作,而不仅仅是 http 输入。绑定对象只携带数据。

另一方面,IoC 容器实例化服务器端服务——对象做某事而不是创建数据,与用户输入无关。

于 2013-09-22T12:16:18.520 回答