为了实现cache存储验证用户身份信息,减少通过数据库验证的次数,需要在wcf各个服务之间建立共享数据区。
namespace WcfService1
{
public static class Class1
{
public static string appName = "";
}
}
namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs,然后开始调试。
public class Service1 : IService1
{
public string GetData()
{
return Class1.appName;
}
public void SetData()
{
Class1.appName="1";
}
}
}
namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service2”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service2.svc 或 Service2.svc.cs,然后开始调试。
public class Service2 : IService2
{
public string GetData()
{
return Class1.appName;
}
public void SetData()
{
Class1.appName = "2";
}
}
}
private void button1_Click(object sender, EventArgs e)
{
Service1Client srv1 = new Service1Client();
srv1.SetData();
}
private void button2_Click(object sender, EventArgs e)
{
Service1Client srv1 = new Service1Client();
MessageBox.Show(srv1.GetData());
}
private void button3_Click(object sender, EventArgs e)
{
Service2Client srv2 = new Service2Client();
srv2.SetData();
}
private void button4_Click(object sender, EventArgs e)
{
Service2Client srv2 = new Service2Client();
MessageBox.Show(srv2.GetData());
}
通过客户端可以发现可以实现数据共享。