为什么我们不需要在C#中声明serialVersionUID(或等效的)?

在Java中,强烈建议所有可序列化类显式声明serialVersionUID,因为默认的serialVersionUID计算对类详细信息高度敏感,并且编译器实现不可靠。

C#中的序列化有什么特别之处?

在.Net序列化中比在Java中更少胡思乱想。

默认情况下,它支持新字段只是默认它们,它只是忽略它不期望的任何数据。

您仍然可以通过在类中实现ISerializable接口并将自己的自定义VersionId添加到类中并在那里进行检查来实现相同类型的版本控制。

你可以在这里阅读更多相关信息