2011-02-07 5 views
3

キャッスルウィンザーはバリューインジェクションできますか?キャッスルウィンザー - バリューインジェクション

たとえば、MVCのビューを記述するインタフェースに自動マップされるプロパティを持つEmployeeのモデルオブジェクトがあるとします。

私のモデルデータが変更されたときに、Employee.FirstNameが自動的にIEmployeeView.FirstNameに設定されるようにします。

今私はValueInjecterを使用していますが、ウィンザーがそれを行うことができれば、アセンブリへの依存関係を削除したいと思います。ウィンザーでそれを行うことが可能であるかもしれない

+0

また、データが変更されたときに、ビューのインターフェイスのプロパティを設定するためにValueInjectorを使用するだけであることについてもお話したいと思います。ウィンザーがさまざまなサービスを提供しているときに起こることではありません。必要に応じてコントローラの例を掲載することができます。 – jonathanpeppers

+0

私は時々ValueInjecterを直接使用せず、IBuilder のインターフェースと実装を持っていますが、これはすべてWindsorによって解決されています。私はこのテクニックをここで使用しています:http://prodinner.codeplex.com – Omu

答えて

4

(またはそのことについては、他のIoCコンテナ)(私はすでにのIoCと他のAOPのもののためにウィンザーを使用しています)が、IoCコンテナ、サービスを管理するのにより適していますデータコンテナではありません。このようなデータを管理しようとすると、遅かれ早かれサービスロケータトラップに入る可能性が高くなります。

ValueInjecterに代わる適切な方法はAutoMapperです。

+0

自動配線イベントのために持っていた:http://www.castleproject.org/container/facilities/v1rc3/eventwiring/index.html私は彼らがプロパティのために似ているかもしれないと思った。 AutoMapperはまだ別のアセンブリですが、私はValueInjecterを好みます。 – jonathanpeppers

+0

ウィンザーは私が必要とするような価値のあるインジェクター機能を持っていないようです(それはIoCとは関係ありません)。しばらくの間に誰も投稿しない場合、私はあなたを答えとしてマークします。 – jonathanpeppers

+1

ValueInjecterはAutoMapperよりもはるかに使いやすいです。方法が少なくて済む。必要に応じて、必要に応じてカスタマイズすることができます。 – Alec

0

MEF(http://mef.codeplex.com/)をチェックしてください。これは.NET 4.0に組み込まれています。

+0

私はMEFを使いましたが、Castle Windsorよりも少ない機能しか持っていないと理解していました。 MEFには、私が必要とするこの「バリューインジェクタ」機能がありますか? – jonathanpeppers

関連する問題