为我的对象添加基类会破坏.NET / XML反序列化吗?

时间:2011-09-19 15:52:55

标签: .net serialization

基类只包含方法。

1 个答案:

答案 0 :(得分:1)

如果不更改包含程序集的版本号,那么添加基类不应该是二进制序列化的问题,对于XML来说它根本不重要,因为它与实际类型非常松散耦合。

只需确保基数也标记为[Serializable]以进行二进制序列化。 我刚刚测试并证实了这一点。

使用二进制格式化程序

序列化以下类
[Serializable]
    public class Test
    {
        public string Name { get; set; }
    }

获得以下base64编码输出:

  

AAEAAAD ///// AQAAAAAAAAAMAgAAAEpDb25zb2xlQXBwbGljYXRpb24xLCBWZXJzaW9uPTEuMC4wLjAs   IEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAIENvbnNvbGVBcHBsaWNhdGlv   bjEuUHJvZ3JhbStUZXN0AQAAABU8TmFtZT5rX19CYWNraW5nRmllbGQBAgAAAAYDAAAABWhhc2FuCw ==

然后为Test添加了以下基类:

[Serializable]
public class Base
{
   public void Dhuz() { }
}

并且成功地再次序列化了base64编码的东西。