我正在用C#为学校项目创建一个纸牌游戏.这个纸牌游戏是联网的.纸牌游戏的游戏数据作为gameData存储在单个对象中.gameData保持,玩家姓名,游戏等待的玩家,玩家对象.每个玩家有3个List对象.卡片再次是自定义对象.最初我打算为每个card,player和gameData对象创建一个ToByte()方法,并将它们序列化以使用TCPlistener通过网络发送.然而,我正在寻找其他方式.
这些是我听说过的解决方案:
-SOAP(不知道如何实现这个)
-Database(对于LAN来说似乎有点过分,除非可以使小型数据库服务器在运行中运行)
-Client Activated Object(但这会为每个客户端创建不同的单例)
我想做的是让每个客户端使用他们自己的gameData但使用get,设置它将与托管这个singleton对象数据的服务器通信.您有什么推荐的吗?
WCF支持单例服务
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] class MySingleton : ... {...}
这样,您就拥有一个服务于所有客户端的服务实例.
WCF使用很少的网络代码轻松进行网络通信.
有关更多详细信息,请查看此文章.
将单例实例与您找到的任何WCF教程相结合,您应该有一个很好的起点.
祝好运.