これがばかげた質問である場合は申し訳ありません-私はMVC 4の本を読んでおり、ninjectを使用したIoCとカスタムモデルバインディングの両方を把握しています。質問: 実行時にパラメーターをインスタンス化するために両方が使用されている場合、一方と他方の実際の違いは何ですか。ここで何が欠けていますか?ありがとう :)
2 に答える
オブジェクトの作成は、モデル バインダーの主な目的ではありません。実際、IoC コンテナーを使用して必要なオブジェクトを作成するモデル バインダーには何の問題もありません。
モデル バインダーの目的は、FormsCollection データ (データの名前と値のペアのコレクション) を、フィールドが入力されたオブジェクトに変換することです。
IoC コンテナーは、その変換を一切行いません。作成するように指示したものを作成するだけです。
それぞれの仕組みについて簡単に説明します。
「Hey、ModelBinder.. ここにたくさんのデータがあります。それをどう処理するかを考えてください」与えられたデータと一致する値を入力してください。」
一方、IoC コンテナーは次のようになります。
「ねえ、IoC コンテナー、IDatabase を実装するオブジェクトが必要です」 "
バインダーは、クライアント側でのユーザー入力とサーバー処理の間のブリッジです。バインダーを使用すると、単なる http 入力よりも高いレベルで作業できます。バインドされたオブジェクトはデータを運ぶだけです。
一方、IoC コンテナーは、サーバー側サービス (データを作成するのではなく何かを実行し、ユーザー入力とは関係のないオブジェクト) をインスタンス化します。