Rules for C# class backward compatibility/avoiding breaking changes

人盡茶涼 提交于 2019-12-02 20:27:29
ErnieL

The best reference is Justin's answer: A definite guide to API-breaking changes in .NET

@Justin - if you ever post this as an answer, I'll give you the check.

You have to maintain the same assembly version (i.e. don't increment it across builds) — see the AssemblyVersionAttribute in MSDN.

Also, you could leverage assembly binding redirects, but that involves config file changes which I don't expect to be desirable in your case.

Alexei Levenkov

At his point error that you are getting is not related to compatibility between classes, but rather problem loading assembly - see The located assembly's manifest definition does not match the assembly reference if it helps.

Adding properties/methods to exisitng class should be ok for backward compatibility. Removing fields/methods/properties, changing class to struct, changing base class is definitely not. Modifying constants, enum values is dangerous.

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