为了实现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()); } 通过客户端可以发现可以实现数据共享。