. .
services.AddTransient<IUrlHelper, UrlHelper>() IUrlHelper IHttpContextAccessor .
public ClassConstructor(IHttpContextAccessor contextAccessor)
{
this.urlHelper = contextAccessor.HttpContext.RequestServices.GetRequiredService<IUrlHelper>();
}
, IUrlHelper UrlHelper .
2017-08-28
.
.
IActionContextAccessor :
public void ConfigureServices(IServiceCollection services)
{
services
.AddSingleton<IActionContextAccessor, ActionContextAccessor>()
.AddMvc();
}
IActionContextAccessor IUrlHelperFactory, IUrlHelper,
public class MainController : Controller
{
private IUrlHelperFactory urlHelperFactory { get; }
private IActionContextAccessor accessor { get; }
public MainController(IUrlHelperFactory urlHelper, IActionContextAccessor accessor)
{
this.urlHelperFactory = urlHelper;
this.accessor = accessor;
}
[HttpGet]
public IActionResult Index()
{
ActionContext context = this.accessor.ActionContext;
IUrlHelper urlHelper = this.urlHelperFactory.GetUrlHelper(context);
return this.Ok();
}
}