2009-12-04 173 views
1

是否有一种简单的方法发送使用C#的应用程序之间的对象?这些对象不总是相同的,例如会有一个“请求”和“响应”类,并且连接的每一侧都会有一种决定哪个对象已被接收的switch语句。简单的TCP网络与C#

是否有一种简单的方法可以在C#中实现这样的事情,而不需要第三方零件库?

回答

2

.NET远程确实或多或少你想要什么,你可以用你的接口类作为做“switch语句”类

http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx

+0

这是行得通的,但是你会在空间和网络流量上产生很大的(r)开销。 – monksy 2009-12-04 00:25:25

+0

.net remoting是WCF的前身。认真考虑使用WCF,同时考虑.net远程处理。更高级别的传输的价值,de /序列化对象的易用性和IDE支持超出开销。 – Russell 2009-12-04 00:29:34

+0

(参考以前的评论):http://msdn.microsoft.com/en-us/library/72x4h507%28VS.85%29.aspx – Russell 2009-12-04 00:30:15

3

最简单的方式完成了原始的TCP连接这是为了创建一个由连接两端的应用程序引用的DLL。把所有的通信类放在这个DLL中,并标记每个类型为Serializable。这使对象可以进行二进制序列化,因此可以很容易地转换成可以直接通过TCP连接传递的byte[]

如果你有一点flexbility你可能要考虑的东西有点较高水平,虽然像Remoting的服务或WCF

+0

通过Tcp流进行序列化将是我Remoting的首选。而且WCF可能比这个操作要求的方式更加激烈。取决于整体使用情况,要求和/或期望。 – IAbstract 2010-01-30 22:22:22

2

如果不需要发送完整的二进制对象(逻辑指令)可以序列XML的请求和响应类并通过流发送文本。

1

“简单”的定义也取决于您的要求。内置功能(例如WCF)不会被分类为第三方库,因此提供了一种在C#应用程序之间安全发送对象的简单方法。 WCF可以为您自动生成代理,因此您只需定义数据合同并公开您的服务即可。你可以在visual studio中添加一个服务引用,并且这些方法是公开的。

我将重新迭代,它确实取决于你想要做什么,以确定最简单的解决方案是什么。

0

我总是试着将问题看作是在应用程序之间发送数据,而不是对象。分布式对象模型几乎总是以眼泪结束,因为你没有真的有共享状态。