asp.net-core – 在Microsoft.AspNet.Http.HttpContext中的Applicati
|
在启动类中,我可以在ConfigureServices方法中添加服务.当我想要获得一定的服务时,HttpContext实例,ApplicationServices和RequestServices中有2个属性.我想知道他们之间的区别和如何正确使用它们. 编辑#1: 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
}
如果我没有在配置(IApplicationBuilder app)方法中调用app.UseRequestServices(),我可以通过Context.ApplicationServices.GetService(typeof(SystemClient))获取SystemClient实例,但是并不是按请求的基础,它似乎是单例和上下文.RequestServices为空.一旦我这样调用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-web-api – 仅在第一个Web请求(WebAPI 2,OWIN 3,Ni
- asp.net – 如何在运行时动态地在另一个ASPX的DIV中显示ASP
- asp.net-mvc – 如何在asp.net mvc中提交下拉列表
- ASP.Net:为什么我的按钮的点击/命令事件没有在转发器中绑定
- .net – 为每个操作设置MaxAllowedContentLength / maxRequ
- asp.net-mvc – 在ASP.NET MVC中定制授权
- asp.net – 防止XSS(跨站脚本)
- asp.net – 我可以在Visual Studio 2008中使用MVC3吗?
- asp.net-mvc – ASP MVC 3在不同的视图中使用不同的布局
- asp.net 禁用viewstate在web.config里
