こんにちは、MVC 3 アプリケーションでMS Unity Containerを使用しています。
セッター注入を使用して、アクション フィルターの依存関係を注入したいと考えています。global.asax に登録しているアクション フィルターがあり、このアクション フィルターはリポジトリ クラスを呼び出してデータをロードします。DIを使用して具象クラスを注入したい。StructureMap を使用すると、非常に簡単に実現できます。しかし、どういうわけか、Unityで動作させることができません。このリンクからすべてのソリューションを試しました。
これが私のコードです:
MyActionFilter.cs
public class GlobalViewBagActionFilter : ActionFilterAttribute
{
public IUserRepo UserRepo { get; set; }
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
var testVal = UserRepo.LoadData();
}
}
Global.asax.cs にアクション フィルターを登録する
private static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new GlobalViewBagActionFilter());
}
Appliation_Start で上記のメソッドを呼び出して登録する
RegisterGlobalFilters(GlobalFilters.Filters);
クラスを登録するために考えられる多くのコード ブロックを試しましたが、何も機能しませんでした。例外が発生するか、アクション フィルターで UserRepo プロパティが null になります。
どうすればそれを機能させることができますか?