gpt4 book ai didi

c# - c#序列化中的方法代码

转载 作者:行者123 更新时间:2023-11-30 17:24:26 25 4
gpt4 key购买 nike

当一个对象被序列化(通过远程处理通过网络发送)时,实例方法代码是否被序列化?或者只是类级别实例字段被序列化?

我问这个是因为我的一些对象有大型方法并且想知道我是否应该使用 DTO(数据传输对象)通过网络发送数据。

我猜这只是数据加上一些类型版本数据……我说得对吗?

谢谢

最佳答案

方法从不序列化。

关于“字段”——这完全取决于序列化程序; BinaryFormatter 将做字段;你提到“远程处理”,这表明 BinaryFormatter,但远程处理现在在很大程度上是一个后遗症 - 来自 MSDN (关于远程处理):

This topic is specific to a legacy technology that is retained for backward compatibility with existing applications and is not recommended for new development. Distributed applications should now be developed using the Windows Communication Foundation (WCF).

如果您使用网络服务或 WCF:XmlSerializer 执行公共(public)字段+属性; DataContractSerializer 将做标记字段等

常规类通常可作为 DTO 重用,但如果您需要对线路进行大量控制(或存在版本控制问题),单独的 DTO 可能会有所帮助。


(编辑/补充)还请注意,还有其他不喜欢 BinaryFormatter 的原因 - 它在版本控制方面可能非常脆弱,并且修复起来非常痛苦(尽管可以实现).如果这可能是一个问题,则存在其他(更宽容的)序列化程序......如果是这样,请告诉我,我会更新。

关于c# - c#序列化中的方法代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995343/

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