subcutanea pierna perro penicilina inyectar inyeccion intramuscularmente intramuscular como brazo bebe agresivo c# asp.net-core asp.net-core-mvc

c# - pierna - inyeccion intramuscular brazo



Cómo inyectar correctamente HttpContext en MVC6 (1)

Mi capa de servicio de datos en mi API requería información que corresponde a la solicitud en httpcontext, leí esta question y dijeron que debería usar ActionContext en lugar de HttpContext.Current (descontinuar en MVC6).

La primera forma es configurar los datos dentro del controlador anulando este método:

public void OnActionExecuting(ActionExecutingContext context) { var routeData = context.RouteData; var httpContext = context.HttpContext; ... }

O usando DI inyectando en la capa de servicio

public MyService(IContextAccessor<ActionContext> contextAccessor) { _httpContext = contextAccessor.Value.HttpContext; _routeData = contextAccessor.Value.RouteData; }

pero no estoy seguro de que la línea de código que figura a continuación sea la forma correcta de realizar la DI

services.AddTransient<IContextAccessor<ActionContext>,ContextAccessor>(); services.AddTransient<IContextAccessor<ActionContext>>();

Cuando hago esto me sale este error.

No se puede resolver el servicio para el tipo ''Microsoft.AspNet.Mvc.ActionContext'' al intentar activar

Actualizar proyecto.json proyecto web

"DIMultiTenan.Infrastructure": "", "DIMultiTenan.MongoImplementation": "", "Microsoft.AspNet.Server.IIS": "1.0.0-beta3", "Microsoft.AspNet.Mvc": "6.0.0-beta3", "Microsoft.AspNet.StaticFiles": "1.0.0-beta3", "Microsoft.AspNet.Server.WebListener": "1.0.0-beta3"


Si está intentando acceder a HttpContext , entonces puede usar IHttpContextAccessor para este propósito.

Ejemplo:

services.AddTransient<QueryValueService>();

public class QueryValueService { private readonly IHttpContextAccessor _accessor; public QueryValueService(IHttpContextAccessor httpContextAccessor) { _accessor = httpContextAccessor; } public string GetValue() { return _accessor.HttpContext.Request.Query["value"]; } }

Tenga en cuenta que en el ejemplo anterior, QueryValueService debe registrarse solo como Transient o Con Scoped y no como Singleton ya que HttpContext se basa en la solicitud ...