我有一个 .NET 6 API,我想在 mediatr 命令中获取 HttpContext,我已阅读 docs 可以使用
builder.Services.AddHttpContextAccessor();
注册 HttpContextAccessor,我这样做没有任何问题,但是当我想要时要在命令的构造函数中注入 IHttpContextAccessor,我的 IDE 告诉它无法解析该符号。我也查看了多个其他来源,它们大多指向要安装的 microsoft.aspnetcore.http
或 microsoft.aspnetcore.app
。遗憾的是,这些 nuget 包已被弃用,因此我正在寻找不使用这些包的解决方案。
PS:api和mediatr命令不在同一个项目中
我在多个其他网站上搜索以找到答案,但他们要么没有指定他们正在使用的包,要么使用已弃用的包。
要在非 web.sdk 项目中使用 ASP.NET Core 3+ 类型,请使用 共享框架参考。
但是,请注意,这主要是为了向库提供端点等。在业务层中使用此引用将业务逻辑与 Web API 框架结合起来。
更灵活的做法是在业务逻辑项目中提供所需能力的接口,并在API项目中提供实现。