- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Startup
类中,我可以在 ConfigureServices
方法中添加服务。当我想要获取某个服务时,HttpContext实例中有2个属性,ApplicationServices
和RequestServices
。我想知道它们之间的区别以及如何正确使用它们。
编辑#1:例如,在 Startup 类中:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ICache, InProcessCache>(); // Line 1
services.AddSingleton<ISystemClientResolver>(SystemClientResolver.CreateInstance); // Line 2
services.AddScoped<SystemClient>(); // Line 3
services.AddRvcBusiness(); // Line 4
services.AddMvc(); // Line 5
}
如果我不在 Configure(IApplicationBuilder app)
方法中调用 app.UseRequestServices()
,我可以通过 SystemClient
实例获取 Context.ApplicationServices.GetService(typeof(SystemClient))
,但它不是基于每个请求,似乎是单例,并且 Context.RequestServices
为 null。一旦我像这样调用 app.UseRequestServices()
:
public void Configure(IApplicationBuilder app)
{
app.UseRequestServices();
// ...
}
Context.RequestServices
不为空,我可以通过 Context.RequestServices.GetService(typeof(SystemClient))
获取 SystemClient
实例,并且实例是基于每个请求的。
最佳答案
ApplicationServices
适用于应用程序的生命周期,而 RequestServices
的范围仅限于特定请求 (HttpContext
)。此外,RequestServices
可以为 null。一个特殊的 RequestContainer 中间件负责初始化 RequestServices
:
app.UseRequestServices()
将使用 ConfigureServices
的结果作为 RequestServices
app.UseServices()
及其重载让您可以指定/修改请求服务
此外,如果您使用路由/或任何安全身份验证中间件,它们也会自动确保填充 RequestServices,因为它们依赖于请求范围的服务本身。
关于asp.net-core - Microsoft.AspNet.Http.HttpContext 中的 ApplicationServices 和 RequestServices 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27122427/
我正在使用具有此配置的 .net core 3.1: public interface IFoo { public void Work(); } public class Foo : IFoo
我想为我的命名空间找到一个正确的名称,该名称将包含与横切关注点相关的所有项目,例如日志记录、安全性、本地化等。 我的想法是这样的: CompanyName.ApplicationServices.Lo
我正在尝试将名为 UploadedFileEntities 的 SQL 表中的数据导出到 excel 文件中,我在前端使用 angular,在后端使用 .NET core(ASP.Net Core 样
为了提高安全性,在我正在进行的项目中保持电子邮件地址的私密性,我希望对存储在数据库中的所有电子邮件进行加密。但是,我们使用的是 Asp.Net Membership 提供程序,并且电子邮件以明文形式显
好吧,所以我想用 make 编译我的 c++ 文件,因为里面有一个 opencv 代码。现在,我想在 Mac OS 上移动或执行光标事件。使用下面的链接,我可以在将该代码集成到我的 c++ 文件中之前
是否可以排队后台任务并访问 ApplicationServices 来解决我在 Asp.Net 5 (vnext) 中的依赖关系? 我正在尝试编写一个每 10 秒运行一次的后台任务,它将查询一些数据并
这是我的错误:(较新版本的ffmpeg) dyld: Library not loaded: /System/Library/Frameworks/ApplicationServices.framew
Apple 的图像 I/O 编程指南说道: Image I/O resides in the Application Services framework in Mac OS X, and in th
每当您首先使用 EF 代码创建应用程序时,您都可以看到添加了以下 web.config 键: 您可以很容易地看到它不包含应用程序特定信息。更改这些值不会影响应用程序的运行方式,因此我认为它一定是某种
我很难理解为什么在使用 IApplicationBuilder.ApplicationServices 时,在启动配置方法中应用服务定位器模式的行为会有所不同。而不是IServiceProvider
我正在尝试使用身份验证服务和我的成员(member)提供商进行身份验证。理想情况下,我想调用我的成员(member)提供商,但在联系我的提供商之前我就崩溃了。说无法验证 token 。检查我的错误日志
我有一个大型 vb.net Web 项目,我正在尝试将其升级到 .net4/VS2010。在编译过程中出现以下错误: 'System.Web.Security.MembershipUser' in a
尽管我似乎采取了正确的步骤,但我在 10.7 上运行 Cocoa 应用程序时遇到了问题。以下是我正在做的事情以及似乎错误的地方的描述: 我正在使用 XCode 5.0.2 和 SDK 10.9 的 1
在 Startup 类中,我可以在 ConfigureServices 方法中添加服务。当我想要获取某个服务时,HttpContext实例中有2个属性,ApplicationServices和Requ
我是一名优秀的程序员,十分优秀!