Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 访问DelegatingHandler中的IUrlHelper_Asp.net Core_.net Core - Fatal编程技术网

Asp.net core 访问DelegatingHandler中的IUrlHelper

Asp.net core 访问DelegatingHandler中的IUrlHelper,asp.net-core,.net-core,Asp.net Core,.net Core,迁移到ASP.Net core后,以下处理程序不起作用。我看不到如何像以前那样从HttpRequestMessage访问IUrlHelper,也找不到具有相关扩展方法的包 使用config.MessageHandlers.Add(new LinkDecoratorHandler())添加处理程序 有人能帮忙吗 public class LinkDecoratorHandler : DelegatingHandler { protected override Task<

迁移到ASP.Net core后,以下处理程序不起作用。我看不到如何像以前那样从
HttpRequestMessage
访问
IUrlHelper
,也找不到具有相关扩展方法的包

使用
config.MessageHandlers.Add(new LinkDecoratorHandler())添加处理程序

有人能帮忙吗

 public class LinkDecoratorHandler : DelegatingHandler
    {

     protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage 
        request, CancellationToken cancellationToken)
        {
        return base.SendAsync(request, cancellationToken)
            .ContinueWith(task =>
            {
                var response = task.Result;

                if (!(response.Content is ObjectContent))
                {
                    return response;
                }

                var entity = (response.Content as ObjectContent).Value as ILinkedEntity;

                var enumeration = (response.Content as ObjectContent).Value as IEnumerable<ILinkedEntity>;

                if (entity != null || enumeration != null)
                {
                    //no longer available
                    var helper = request.GetUrlHelper();

                //blah
                }

                return response;
            });
        }
}
公共类linkdecorhandler:DelegatingHandler
{
受保护的覆盖任务SendAsync(HttpRequestMessage
请求,取消令牌(取消令牌)
{
return base.sendaync(请求、取消令牌)
.ContinueWith(任务=>
{
var response=task.Result;
如果(!(response.Content是ObjectContent))
{
返回响应;
}
var entity=(response.Content作为ObjectContent)。值作为ILinkIdentity;
变量枚举=(response.Content作为ObjectContent)。值作为IEnumerable;
if(实体!=null | |枚举!=null)
{
//不再可用
var helper=request.GetUrlHelper();
//废话
}
返回响应;
});
}
}

提前感谢

如果您的
LinkDecoratorHandler
是通过依赖项注入实例化的,那么您可以注入的实例来获取当前的
ActionContext
。从那里,您可以。

如果您的
LinkDecorHandler
是通过依赖项注入实例化的,那么您可以注入的实例来获取当前的
ActionContext
。从那里,您可以。

上面的代码在哪里?上面的代码在哪里?