.net binary formatter deserialize an object whose definition has changed a lot

烈酒焚心 提交于 2019-12-01 21:23:20

I hate to say it, but my first pointer here would be "don't do that" - BinaryFormatter is very brittle - and while you can often bang your head on the keyboard for 6 hours to get past each successive pain point, it really isn't worth it. There are many many reasons I always say "don't use BinaryFormatter" - you've sadly found 4 of them. Frankly, my recommendation would be:

  • put back the original class, and use it just as a DTO to deserialize the old data
  • start moving to a model where you have a separate DTO model and entity model - and map between them so that your serialization is entirely independent of your application logic
  • investigate different serializers; just about any alternative serializer would be preferable to BinaryFormatter (except perhaps NetDataContractSerializer, which goes and repeats all the same mistakes; DataContractSerializer is ok-ish, though)

Sorry that isn't more positive...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!