gpt4 book ai didi

wcf - 为什么 .Net Remoting 不需要已知类型而 WCF 需要?

转载 作者:行者123 更新时间:2023-12-04 17:19:12 27 4
gpt4 key购买 nike

我们正在迁移我们的 .net Remoting 应用程序以使用 WCF。现在让我感到困惑的一件事是 WCF 引入但 Remoting 不需要的“已知类型”的概念。虽然我有点理解已知类型是什么以及它们做了​​什么,但我感到困惑的是 WCF 和 Remoting 之间的区别 - 在发送方方面,如果 WCF 没有足够的关于手头对象的类型信息来序列化它,为什么要Remoting?接收者也一样:为什么 .net Remoting 在反序列化接收到的对象时没有问题,但 WCF 有问题?那是因为 Remoting 将元数据与数据一起发送吗?如果是这样,为什么 WCF 不能做同样的事情?

最佳答案

您是对的 - .NET 远程处理随请求发送类型元数据。 WCF 可以做同样的事情,但默认情况下它不会 - 它有很多额外的信息,这使得请求更大并且处理起来更复杂(影响性能)。不发送类型信息还允许松耦合系统,其中客户端和服务器可以单独版本化,只要它们遵守在原始版本中建立的契约,它们就会继续工作。它还允许 WCF 与用非 NET 平台编写的系统对话(这对于远程处理或依赖共享类型信息的其他技术是不可能的)。

如果你真的想采用未知类型的方式,你可以用 NetDataContractSerializer 替换 WCF 使用的默认序列化程序(DataContractSerializer),它将随每个请求发送类型信息。要使用它,请搜索“wcf netdatacontractserializer”,您将找到如何使用它。

关于wcf - 为什么 .Net Remoting 不需要已知类型而 WCF 需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579734/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com