Wcf 创建全局变量以在IErrorHandler实现中使用

Wcf 创建全局变量以在IErrorHandler实现中使用,wcf,Wcf,我需要一种方法来传递用户输入的数据 调用服务时,我想设置一个会话变量或类似于会话变量的东西,并用用户数据填充它。 然后运行服务方法(如果有错误),IErrorHandler将捕获该方法。在我的HandleError方法中,我希望能够从会话变量中获取数据,然后删除会话变量 我能够设置一种填充会话变量的方法,但是当我调用ErrorHandler类时,该变量返回null Process(Order o) { HttpContext.Current.Session["InputData"] =

我需要一种方法来传递用户输入的数据

调用服务时,我想设置一个会话变量或类似于会话变量的东西,并用用户数据填充它。 然后运行服务方法(如果有错误),IErrorHandler将捕获该方法。在我的HandleError方法中,我希望能够从会话变量中获取数据,然后删除会话变量

我能够设置一种填充会话变量的方法,但是当我调用ErrorHandler类时,该变量返回null

Process(Order o)
{
    HttpContext.Current.Session["InputData"] = o;

有人能帮我解决这个问题吗?

因为所有这些都发生在同一个请求中,所以您不需要会话变量


尝试使用所需的数据创建服务类的非静态成员。在服务操作开始时进行设置。如果IErrorHandler确定此服务中发生错误,则它应该能够检索该值。

公共类OrderService:IOrderService{public void SetSessionobject value{}public object GetSession{return null;}在同一命名空间中的ErrorHandler类中无法访问这些方法。我不确定为什么当前上下文中不存在名称“GetSession”。请确切说明您试图如何使用它们。我打赌您不会首先获得服务类的实例。即使我写OrderService s=new Order,我也会创建我的ErrorHandler类Service;object moomoo=s.GetSession;它返回null。我在OrderService中创建了这样一个属性,其中web方法是..private object session=null;public void SetSessionobject value{session=value;}public object GetSession{return session;}