1

これがばかげた質問である場合は申し訳ありません-私はMVC 4の本を読んでおり、ninjectを使用したIoCとカスタムモデルバインディングの両方を把握しています。質問: 実行時にパラメーターをインスタンス化するために両方が使用されている場合、一方と他方の実際の違いは何ですか。ここで何が欠けていますか?ありがとう :)

4

2 に答える 2

2

オブジェクトの作成は、モデル バインダーの主な目的ではありません。実際、IoC コンテナーを使用して必要なオブジェクトを作成するモデル バインダーには何の問題もありません。

モデル バインダーの目的は、FormsCollection データ (データの名前と値のペアのコレクション) を、フィールドが入力されたオブジェクトに変換することです。

IoC コンテナーは、その変換を一切行いません。作成するように指示したものを作成するだけです。

それぞれの仕組みについて簡単に説明します。

「Hey、ModelBinder.. ここにたくさんのデータがあります。それをどう処理するかを考えてください」与えられたデータと一致する値を入力してください。」

一方、IoC コンテナーは次のようになります。

「ねえ、IoC コンテナー、IDatabase を実装するオブジェクトが必要です」 "

于 2013-09-22T21:43:41.210 に答える
1

バインダーは、クライアント側でのユーザー入力とサーバー処理の間のブリッジです。バインダーを使用すると、単なる http 入力よりも高いレベルで作業できます。バインドされたオブジェクトはデータを運ぶだけです。

一方、IoC コンテナーは、サーバー側サービス (データを作成するのではなく何かを実行し、ユーザー入力とは関係のないオブジェクト) をインスタンス化します。

于 2013-09-22T12:16:18.520 に答える