答案 0 :(得分:2)
对象创建不是模型绑定器的主要目的。实际上,使用IoC容器创建必要对象的模型绑定器没有任何问题。
模型绑定器的目的是将FormsCollection数据(一组名称/值数据对)转换为填充了字段的对象。
IoC容器不执行任何转换。它只会创建您要创建的内容。
所以这里是关于每种方法如何运作的简短对话:
“嘿,ModelBinder ..这里有一堆数据,弄清楚该怎么办” “Righto!看起来我需要一个新的LoginModel,让我以某种方式创建一个,通过Activator或IoC Container,然后用与我给出的数据匹配的值填充它。”
而IoC容器更像是:
“嘿,IoC容器,我需要一个实现IDatabase的对象” “对了!我通过我的配置中的映射看到一个IDatabase接口被映射到一个DatabaseInstance对象,所以我只为你准备一个新的,然后你就去了”
答案 1 :(得分:1)
Binders是客户端用户输入和服务器处理之间的桥梁。 Binders让你的工作水平高于http输入。绑定对象只携带数据。
另一方面,IoC容器实例化服务器端服务 - 执行某些操作而不是创建数据而与用户输入无关的对象。