gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 5 过滤器和注入(inject)

转载 作者:行者123 更新时间:2023-12-05 01:21:17 25 4
gpt4 key购买 nike

我有这个 DDD 应用程序,它在 Presentation 上有 MVC,带有 Ninject。

我有 CrossCutting Layer 绑定(bind)来自所有层的注入(inject),它的工作就像一个魅力。

我无法解决的问题是涉及过滤器属性时。我有这个过滤器检查一个 cookie 并根据它的值对数据库执行查询。有了这个架构,我就不能让我的过滤器直接访问我的存储库,这是对我正在应用的方法的不尊重。

我有我的 IFooAppService 接口(interface),它的方法最终会访问存储库以请求数据。我可以在任何 Controller 构造函数中成功注入(inject)它,它会执行我的 _fooAppService.Query(),但是我在我的应用程序中的一些操作上面有这个 XooFilter,我只是不能将我的 _fooAppService 传递给它。这是我的 XooFilter:

public class XooFilter : ActionFilterAttribute
{
private readonly IFooAppService _fooAppService;

public XooFilter(IFooAppService fooAppService)
{
_fooAppService = fooAppService;
}

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// LOGIC...

var fooValue = _fooAppService.Query();

// MORE LOGIC..
}
}

但是,当我在任何 Action [XooFilter] 上方插入我的过滤器时,它不会起作用。它说过滤器没有包含 0 个元素的构造函数。

我只是不知道如何做得很好并保持 DDD 和 IoC 的特性。我找到了下面的文章,但找不到任何答案:

Injecting dependencies into ASP.NET MVC 3 action filters. What's wrong with this approach?

最佳答案

你可以这样解决你的服务

System.Web.Mvc.DependencyResolver.Current.GetService(typeof (IFooAppService ));

关于asp.net-mvc - ASP.NET MVC 5 过滤器和注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30059891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com