ActionFilterAttribute ninject注射 - 的DbContext已经布置(A

2019-07-18 02:57发布

我有我的项目,该项目使用的服务和工作单位(所有Ninject注入从NinjectModule的依赖关系)通常Repository模式,但我试图从访问服务ActionFilterAttribute注入一些信息(从DB)在页面布局我秀,所以我并不需要乱用所有的每个控制器上的动作。

问题是当我保存到DB一个屏幕上,并移动到下一个,然后再回到以前的(与标准@Url.Action ):该ActionFilterAttributeIndex动作被触发,但在调用的服务和相应的库(该属性内),因为引发异常DbContext has been disposed

是否有与访问服务,因此,任何的问题DbContextActionFilterAttribute ,同时通过房产注射注射服务? 我要让我使用属性注射服务的属性,因为构造函数接受2个参数是任意取决于操作方法的签名,所以我唯一的选择是通过属性注入一个音符。

让我知道如果你需要一些代码,我会更新的问题。

Answer 1:

我发现了以下问题的解决我的问题: 注入依赖到ASP.NET MVC 3行动的过滤器。 有什么不对这种做法?

结合马克·西曼的回答与striplingwarrior的评论是解决它。

基本上我分裂我的ActionFilterAttribute成仅仅是装饰我的行为,并保持我需要为以后的参数,也成检查行动的自定义属性,如果我的属性存在,那么它注入我从DB想进入数据一个ActionFilter的属性该ViewBag。 一切都是后来从Ninject的BindFilter扩展绑定,因此只适用于它需要的方法。



文章来源: ActionFilterAttribute ninject injection - DbContext has been disposed