2010-12-14 5 views
2

nティアASP .net MVCアプリケーションでUnity IoCコンテナを設定する方法を少し問題があります。 (ビューとして使用) 1. MVC:nティアASPでのUnityの設定方法.net MVCアプリケーション

は私が私の溶液中の3つのプロジェクトを持っているリポジトリのプロジェクトへの参照のみ 3.レポジトリいます:お持ちでないだけ 2.ビジネスロジック層ビジネスロジック層にrefereneを持っています上記のプロジェクトのいずれかへの参照

私の参照の仕組みに気づくと、私はこのようにしていますので、難易度の低いWCFを使用している私の層の間の通信を置き換えることができます。

私はこのような何か(Global.asaxのを)やって私のMVCアプリケーションでのユニティ・コンテナを設定している:

container.RegisterType(); // MyServiceでは、MyServiceでクラスは、それらのMyServiceでクラスのいずれかが作成されたときにMyRepositoryも必要であることを意味し、そのコンストラクタで、私のリポジトリを使用して、私のビジネスロジック層

である:

公衆たMyService(IRepositoryリポジトリ):ベース(リポジトリ) {}

私のコンテナにはまだIRepositoryが設定されていません。

MVC(View)層にリポジトリのリファレンスを追加したくないので、私はGlobal.asaxでやりたくありません。

これを設定する最適な場所はどこですか?私はここで混乱しています....

ありがとうございます。

答えて

1

は、私がこれまで何をしたか、あなたを教えてみましょう:

私はその後、私は私のビュー・レイヤー(MVCでユニティコンテナを作成し、私のサービスとリポジトリに静的クラスを作成しました)これらの静的クラスに渡すと、コンテナには必要なものを加えて次のレイヤーを入れます。たとえば、サービスレイヤーも自分のリポジトリの静的クラスを呼び出します。

このようにして、私は必要なものすべてをコンテナに設定します。

質問は次のとおりです:これは良いことですか?

2

あなたが試してみました:http://mvcunity.codeplex.com/

+0

リー、 MVCUnityはよさそうだが、私は非常にこれは私の問題を解決する方法を理解していませんか? MVCアプリケーションでRepositoryへのアセンブリ参照はありません。 – Raha

0

Unityを使用している場合。中間層にUnityコンテナの拡張を実装し、以下のようにPresentationレイヤに登録することができます。

  //Data Layer dependency mapping as extension eg : IUnitOfWork 
      container.AddNewExtension<DependencyInjectionExtension>(); 

詳細はこちらの記事をご覧ください。

N-tier with DI (Unity)

おかげ

関連する問題