我正在尝试创建一个通用工厂类来调用WCF并注入一些头信息。在这个类中,我想要读取HTTP头属性。
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'"。由于我不是从静态方法或类中调用,为什么会出现这种情况呢?如有帮助,将不胜感激。
谢谢。