治疗WebService的失忆症
[IT168 技术文档]关于WebService的状态管理,园子里也有不少文章了,正好今日要做一个关于状态管理的调查,现在老了,记忆力不如以前好了,因此顺便把自己的一些理解写下来,以防遗忘。
众所周知,WebService的调用是无状态的,即WebService中的变量是不能做到跨方法使用的。但是我们在实际的项目中,难免会遇到跨方法使用某些变量的情况,所以我们应该想办法治好WebService的失忆症,用什么药好呢?
当仁不让,首先应该想到使用Application。Application对于WebService是始终可用的,而且使用起来也非常方便,不需要做任何的配置。
服务器端代码:


public class StateService : System.Web.Services.WebService


{
public StateService()

{
}

[WebMethod]
public string Hello()

{
return "你好," + Application["name"].ToString();
}

[WebMethod]
public void SetName()

{
Application["name"] = "笨笨熊";
}
}
客户端代码:


class Program

{
static void Main(string[] args)

{
StateService.StateService firstService = new TestProject.StateService.StateService();
firstService.SetName();
Console.WriteLine(firstService.Hello());
Console.Read();
}
}
运行结果:你好,笨笨熊
众所周知,WebService的调用是无状态的,即WebService中的变量是不能做到跨方法使用的。但是我们在实际的项目中,难免会遇到跨方法使用某些变量的情况,所以我们应该想办法治好WebService的失忆症,用什么药好呢?
当仁不让,首先应该想到使用Application。Application对于WebService是始终可用的,而且使用起来也非常方便,不需要做任何的配置。
服务器端代码:
public class StateService : System.Web.Services.WebService

{
public StateService()
{
}
[WebMethod]
public string Hello() 
{
return "你好," + Application["name"].ToString();
}
[WebMethod]
public void SetName()
{
Application["name"] = "笨笨熊";
}
}
class Program
{
static void Main(string[] args)
{
StateService.StateService firstService = new TestProject.StateService.StateService();
firstService.SetName();
Console.WriteLine(firstService.Hello());
Console.Read();
}
}0
相关文章