gpt4 book ai didi

C# 非静态字段、方法或属性需要对象引用 'HttpContext.Request'

转载 作者:行者123 更新时间:2023-12-05 00:57:51 24 4
gpt4 key购买 nike

我正在尝试创建一个通用工厂类来调用 WCF 并注入(inject)一些 header 。在这个类中,我试图阅读 HTTP Header 属性。

    using System.ServiceModel;
using System.ServiceModel.Channels;
using ServiceReference;
using Microsoft.AspNetCore.Http;
namespace Service
{
public class ServiceFactory
{

public static ServiceClient Create()
{
ServiceProxy service = new ServiceProxy();
string userName = HttpContext.Request.Headers["AUTH_USERNAME"];
string authenricationType = HttpContext.Request.Headers["AUTH_TYPE"];

using (new System.ServiceModel.OperationContextScope((System.ServiceModel.IClientChannel)service.InnerChannel))
{
HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
requestMessage.Headers["AUTH_USERNAME"] = userName;
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;

requestMessage.Headers["AUTH_TYPE"] = authenricationType;
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
}
return service;
}
}
}

但我得到一个编译错误 “非静态字段、方法或属性'HttpContext.Request'需要对象引用。因为我不是从静态方法调用或一个类如何发生这种情况。任何帮助将不胜感激。

谢谢。

最佳答案

HttpContext.Request 不起作用,因为它试图像访问静态属性一样访问实例属性。 HttpContext.Current.Request 应该可以工作,假设此时上下文已经与线程相关联

Difference between HttpContext.Request and Request

关于C# 非静态字段、方法或属性需要对象引用 'HttpContext.Request',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59637749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com