C# - 在客户端和服务器之间发送对象

时间:2013-09-17 16:33:30

标签: c# object client-server

我已经完成了一个学校项目的处理,目前我已陷入特定的困境。该项目的目标是创建一个以非常特定的方式处理数据的OO系统 - 服务器和客户端都具有模型层信息的定义,但服务器必须处理所有数据保存到关系中数据库中。

因此,客户端和服务器都有一个完全不同的控制器层。目前,只编写服务器端,它处理关系到对象的映射,一般来说,所有对象的管理(R2O用实体框架解决)。但问题在于重构对象必须以某种方式传递给客户端。

我的问题是:这样做的最佳解决方案是什么?我无法更改布局(因此客户端无法直接连接到数据库服务器,不幸的是,有一个数据提供服务器是必需的,并且必须在该部分上解决并发管理),但我真的找不到简单的方法通过TCP连接传递具有相互关系的不同类的对象。

再一次 - 您建议的解决方案是什么,或者更广泛,我的选择是什么?

2 个答案:

答案 0 :(得分:1)

您需要查看对象的序列化。

如果需要将对象从服务器传输到客户端,则需要将其序列化为二进制或其他形式;使用TCP连接传输它;然后在客户端反序列化它以重建对象。

您可以这种方式传输一个或多个对象。

MSDN上的这篇文章概述了seralisation - http://msdn.microsoft.com/en-us/library/182eeyhh%28v=vs.100%29.aspx

此博客条目提供了一个基本实现 - http://weblogs.asp.net/stevewellens/archive/2009/07/02/serializing-and-deserializing-objects-to-and-from-xml.aspx

您必须根据自己的需要进一步定制;但这是我期望的家庭作业的重点。

答案 1 :(得分:1)

在.net中通过TCP / IP传输数据的最简单方法是WCF。关于代码项目有一个很好的教程:http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

此外,您可能需要跟踪实体的状态(我的意思是当它们被发送到客户端并返回时)。如果您使用EF,请查看自我跟踪实体:http://msdn.microsoft.com/en-us/data/jj613924.aspx