自定义个快三平台开发缓存数据库”玩玩

有问题快三平台开发缓存数据库q-2747044651 官网【征途源码论坛https://0x9.me/WV9jI】

前言:首先声明,此文题目算是标题党的一种,是本人为了完成与widows服务通信编程学习幻想出来的一个模型(并不是真的缓存数据库),并且会作为本人以后加深多线程、设计模式、非关系型数据库等方面学习的一个模型实例,毕竟有一个实际的模型更容易加深理解。


完成这部分模型,大概会做一下几件事情:
微信约战斗地主棋牌开发( q-2747044651【征途源码论坛https://0x9.me/WV9jI】)

1、  创建一个Windows服务(用来寄存这个“缓存数据库”)


2、  创建一个WCF服务,寄宿在windows服务中(用于跟客户端通信,对“缓存数据库”进行增删查操作)


3、  创建客户端进行测试


第1步:WCF服务的创建及对缓存对象增删查的实现


WCF服务创建的过程及其Endpoint节点相关基础在这里不作累述,网上很多资料,这里直接贴Contract及其实现的代码,保存表数据的数据结构是Dictionary<string,DataTable>,其中key存放是表名,DataTable存放是数据。


复制代码
 1 using System;
 2 
 3 using System.Collections.Generic;
 4 
 5 using System.Data;
 6 
 7 using System.Linq;
 8 
 9 using System.Runtime.Serialization;
10 
11 using System.ServiceModel;
12 
13 using System.ServiceModel.Web;
14 
15 using System.Text;
16 
17  
18 
19 namespace SelfWcfService
20 
21 {
22 
23     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
24 
25     [ServiceContract]
26 
27     public interface ISelfSQLData
28 
29     {
30 
31         [OperationContract]
32 
33         ExcuteResult CreateTable(string tableName, DataTable colNames);
34 
35  
36 
37         [OperationContract]
38 
39         ExcuteResult Insert(string tableName, SelfDataRow dr);
40 
41  
42 
43         [OperationContract]
44 
45         ExcuteResult Delete(string tableName, SelfDataRow dr);
46 
47  
48 
49         [OperationContract]
50 
51         ExcuteResult DropTable(string tableName);
52 
53  
54 
55         [OperationContract]
56 
57         Dictionary<string, DataTable> GetData();       
58 
59     }
60 
61  
62 
63     [DataContract]
64 
65     public class SQLData
66 
67     {
68 
69         [DataMember]
70 
71         public Dictionary<string, DataTable> DataTables { get; set; }       
72 
73     }
74 
75    
76 
77     [DataContract]
78 
79     public class SelfDataRow
80 
81     {
82 
83         [DataMember]
84 
85         public DataTable DataTable { get; set; }
86 
87     }
88 
89 }
复制代码
接口实现部分:


 

微信约战斗地主棋牌开发( q-2747044651【征途源码论坛https://0x9.me/WV9jI】)
复制代码
  1 using System;
  2 
  3 using System.Collections.Generic;
  4 
  5 using System.Data;
  6 
  7 using System.Linq;
  8 
  9 using System.Runtime.Serialization;
 10 
 11 using System.ServiceModel;
 12 
 13 using System.ServiceModel.Web;
 14 
 15 using System.Text;
 16 
 17  
 18 
 19 namespace SelfWcfService
 20 
 21 {
 22 
 23     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
 24 
 25     // 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs,然后开始调试。
 26 
 27     public class SelfSQLData : ISelfSQLData
 28 
 29     {
 30 
 31         private static SQLData _sqlData;
 32 
 33         public static SQLData SqlData
 34 
 35         {
 36 
 37             get
 38 
 39             {
 40 
 41                 if (_sqlData == null)
 42 
 43                 {
 44 
 45                     _sqlData = new SQLData();
 46 
 47                 }
 48 
 49                 if (_sqlData.DataTables == null)
 50 
 51                 {
 52 
 53                     _sqlData.DataTables = new Dictionary<string, System.Data.DataTable>();
 54 
 55                 }
 56 
 57                 return _sqlData;
 58 
 59             }
 60 
 61             set
 62 
 63             {
 64 
 65                 _sqlData = value;
 66 
 67             }
 68 
 69         }
 70 
 71  
 72 
 73         private void InitalSqlData()
 74 
 75         {
 76 
 77             if (_sqlData == null)
 78 
 79             {
 80 
 81                 _sqlData = new SQLData();
 82 
 83             }
 84 
 85             if (_sqlData.DataTables == null)
 86 
 87             {
 88 
 89                 _sqlData.DataTables = new Dictionary<string, System.Data.DataTable>();
 90 
 91             }
 92 
 93         }
 94 
 95  
 96 

猜你喜欢

转载自www.cnblogs.com/bbinoo/p/10231938.html