2011-11-11 13 views
0

Unity DIフレームワークを使用してASP.NET MVCアプリケーションを開発しています。私はシナリオ、異なるデータベースベースのURIセグメントを接続するWebアプリケーションを試しています。私はいくつかのオプションを試しましたが、成功していません。ASP.NET MVC 3 Unity DI - 実行時にパラメータを解決します。

私は、Gloabl.asaxファイルのApplication Loadイベントに1つのコンテナ内のすべてのオブジェクトを登録しています。単一のデータベースとの接続がうまく機能しています。

container.RegisterType<IContext, DbContext>(new PerRequestLifetimeManager(), new InjectionConstructor("data source=.; Initial Catalog=catalog1; User ID=sa; Password=xxxxxx;")); 

しかし、URIパラメータに基づいて接続文字列を動的に変更したいとします。 http://www.domain.com/ABCのように。 ABCの場合は、別のデータベースに接続します。データベースに接続する前に、実行時に手動でDbContextオブジェクトを再オープンするにはどうすればよいですか?または最良の代替オプションは何ですか?

答えて

0

あなたはタイプ登録に名前を付けて、名前によって解決することができます

container.RegisterType<IContext, DbContext>("ABC", new PerRequestLifetimeManager(), new InjectionConstructor("data source=.; Initial Catalog=catalog1; User ID=sa; Password=xxxxxx;")); 

container.Resolve<IContext>("ABC") 
関連する問題