为我的对象添加基类会破坏.NET/XML反序列化吗?
基类将只包含方法。如果不更改包含程序集的版本号,那么添加基类对于二进制序列化来说应该不会有问题,对于XML来说,这一点都不重要,因为它与实际类型紧密耦合 只需确保基址也被标记为[Serializable],用于二进制序列化。 我刚刚测试并确认了这一点 使用二进制格式化程序序列化了以下类为我的对象添加基类会破坏.NET/XML反序列化吗?,.net,serialization,.net,Serialization,基类将只包含方法。如果不更改包含程序集的版本号,那么添加基类对于二进制序列化来说应该不会有问题,对于XML来说,这一点都不重要,因为它与实际类型紧密耦合 只需确保基址也被标记为[Serializable],用于二进制序列化。 我刚刚测试并确认了这一点 使用二进制格式化程序序列化了以下类 [Serializable] public class Test { public string Name { get; set; } } 已获得以下base64编码输出
[Serializable]
public class Test
{
public string Name { get; set; }
}
已获得以下base64编码输出:
aaaaaad/////aqaaaaaamagaaaaepdb25zb2xlqxbwbgljyxrpb24xlcbwzxjzaw9upteumc4wljas
IEN1BHR1CMU9BMV1DHJHBCWGUHVIBGLJS2V5VG9RZW49BNVSBAUAIAENVBNNVBGVBCHBsWnHDGLV
BJEUHJVZ3JHBSTUZXN0AQAABU8TMFTZT5RX19Cywnraw5NRMLLBGQBAGAAAYDAAABWHC2FUCW==
然后添加以下用于测试的基类:
[Serializable]
public class Base
{
public void Dhuz() { }
}
并且再次成功地反序列化了base64编码的内容,没有任何问题。如果不更改包含程序集的版本号,那么添加基类对于二进制序列化来说应该不是问题,对于XML来说,这一点都不重要,因为它与实际类型紧密耦合 只需确保基址也被标记为[Serializable],用于二进制序列化。 我刚刚测试并确认了这一点 使用二进制格式化程序序列化了以下类
[Serializable]
public class Test
{
public string Name { get; set; }
}
已获得以下base64编码输出:
aaaaaad/////aqaaaaaamagaaaaepdb25zb2xlqxbwbgljyxrpb24xlcbwzxjzaw9upteumc4wljas
IEN1BHR1CMU9BMV1DHJHBCWGUHVIBGLJS2V5VG9RZW49BNVSBAUAIAENVBNNVBGVBCHBsWnHDGLV
BJEUHJVZ3JHBSTUZXN0AQAABU8TMFTZT5RX19Cywnraw5NRMLLBGQBAGAAAYDAAABWHC2FUCW==
然后添加以下用于测试的基类:
[Serializable]
public class Base
{
public void Dhuz() { }
}
并且成功地再次反序列化了base64编码的内容,没有出现任何问题