0
我有以下的全球行動過濾器:NHibernate的會議結束在全球行動篩選
public class AddWidgetsAttribute : ActionFilterAttribute {
private ISession _session;
public ISession Session {
get {
if (_session == null)
_session = DependencyResolver.Current.GetService<ISession>();
return _session;
}
}
public override void OnActionExecuting(ActionExecutingContext filterContext) {
filterContext.Controller.ViewBag.Widgets = Session.Query<Widget>().ToList();
}
}
下面是它增加了過濾器在Application_Start事件中的代碼:
GlobalFilters.Filters.Add(new AddWidgetsAttribute());
這工作第一細請求,但它會拋出一個錯誤,告訴我該會話已關閉。如果我將會話屬性更改爲以下內容:
public ISession Session {
get { return DependencyResolver.Current.GetService<ISession>(); }
}
它工作正常,但它似乎喜歡黑客。有沒有一種很好的方法在全局動作過濾器中注入依賴關係?
我會很感激的幫助。謝謝
感謝這就是我想要的,但很高興有一些澄清。 – nfplee