C# 中的对象序列化和网络

发布于 2024-10-01 02:18:35 字数 122 浏览 3 评论 0 原文

我正在开发一个简单的网络项目,并且想使用 TCPListener / Client 连接直接传输对象。我想避免 WCF 开销,只需要一种简单的方法来序列化对象,通过网络发送它,最后在另一端将其恢复到原始状态。

谢谢

I'm working on a simple network project, and would like to transfer objects directly using a TCPListener / Client connection. I would like to avoid the WCF overhead, and just have a simple way of serializing the object on the way out, sending it over the network, and finally restoring it back to the original on the other end.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独自←快乐 2024-10-08 02:18:35

现在有了 WCF,远程处理就不再受欢迎了。 WCF 针对性能进行了高度优化,在大多数情况下将胜过远程处理。请参阅 http://msdn.microsoft.com/en-us/library/bb310550。 .aspx.您没有提到您是否担心运行时开销或学习如何使用 WCF 的开销。话虽这么说,您可以通过使用二进制 TCP 传输而不是 HTTP 传输来减少运行时开销。当然,尽管 HTTP (SOAP) 现在非常流行,但它运行良好。您的服务可以支持多种传输(即 TCP 和 HTTP),以便与 .NET 客户端(TCP 传输)和其他符合标准的客户端(HTTP SOAP 传输)良好配合。

Remoting is out of favor now that there is WCF. WCF is highly optimized for performance and will win over remoting in most cases. See http://msdn.microsoft.com/en-us/library/bb310550.aspx. You don't mention whether you are worried about runtime overhead or the overhead of learning how to use WCF. That being said, you can reduce the runtime overhead by using the binary TCP transport instead of the HTTP one. It works well, though HTTP (SOAP) is, of course, highly popular now. Your service can support multiple transports (i.e., TCP and HTTP) to work well with .NET clients (TCP transport) and other standards-compliant clients (HTTP SOAP transport).

无法回应 2024-10-08 02:18:35

研究.NET Remoting;它让事情变得简单!
在此处的评论中显示示例是一个很大的主题 =)
请阅读此处:http://msdn.microsoft.com/en -us/library/kwdt6w2k(VS.71).aspx

Look into .NET Remoting; it makes things easy!
And it's a big topic to display a sample in a comment here =)
Read here: http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx

骄兵必败 2024-10-08 02:18:35

如果您只需要序列化/反序列化行为而不涉及 WCF 或远程处理,那么有很多方法:

  1. 通过 SerializedAttributeBinaryFormatter
  2. XML 序列化
  3. Json.NET
  4. Google 的 Protocol Buffers,通过 ProtoBuf.NET

所有方法都有优点和缺点,但我相信对于你的需求#1 就足够了。合理紧凑,无需外部库。

Well if you need ONLY serialization/deserialization behavior without involving WCF or Remoting, there is a plenty ways:

  1. Standard serialization via SerializableAttribute and BinaryFormatter
  2. XML Serialization
  3. Json.NET
  4. Google's Protocol Buffers via ProtoBuf.NET

All approaches have strong and weak sides, but I believe that for your needs #1 will be enough. Reasonable compact and without external libraries need.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文