0

MVCコントローラのコンストラクタ注入されたパラメータを解決するために使用されるユニティコンテナの参照を取得することは可能ですか?MVCコントローラのUnityコンテナ参照を取得する

現在使用されているコンテナの参照が必要です。これは、使用するクラスがあるためです。

MvcApplicationクラスのApplication_Start()ハンドラ中に登録された参照を、MvcApplicationクラスのプロパティに保存することで保存しようとしていますが、後でコントローラでアクセスしようとするとnullです。

コンテナがそうのように登録されている:

DependencyResolver.SetResolver(new UnityDependencyResolver(CurrentUnityContainer)); 

CurrentUnityContainer

その後MvcApplicationクラスの非静的プロパティであると仮定すると、コントローラに我々は現在MvcApplicationにアクセスして、それを取得しよう例:

MvcApplication.Instance.CurrentUnityContainer 

コンテナがコントローラ内でヌルである理由、または他の方法でそれを取得する理由はありますか?

答えて

0

静的なプロパティSystem.Web.Mvc.DependencyResolver.Current経由で依存関係リゾルバにアクセスできます。

しかし、Service Locatorのパターンに注意してください。

+0

申し訳ありませんが、私はコンテナ(IUnityContainer)が必要です。または、かなり多くのレガシーコードをリファクタリングする必要があります。 –

+0

キャストしようとしました: 'var currentUnityContainer = System.Web.Mvc.DependencyResolver.Current as UnityDependencyResolver;'? –

関連する問題