WCF各个Service之间共享数据

时间:2022-08-18 00:05:45
为了实现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());
        }
通过客户端可以发现可以实现数据共享。