ASP.NET配置文件如何处理版本控制?我知道,因为数据是序列化的,这可能是一个问题,而不是表格。
会引发某种序列化错误吗?
示例:我将v1对象存储到配置文件中。我使用新的v2版本更新我的Web应用程序,但数据库仍包含v1对象。
当我尝试将v1对象反序列化为v2对象时会发生什么?这个问题的最佳解决方案是什么?
答案 0 :(得分:3)
通常,ASP.NET将配置文件数据视为属性包 - 因此它可能会跳过属性(已存储在数据存储中)但从配置中删除。同样,对于新添加的属性,它将使用默认值。现在,属性类型也很重要 - 如果属性类型是您的自定义类,那么它的序列化将由XmlSerializer或BinaryFormatter处理。 XmlSerializer是一个默认值,它通常是一个容错的序列化程序(将跳过缺少的属性等)。您可以使用属性来控制xml序列化。对于BinaryFormatter,它与运行时序列化相同,如果您希望支持版本控制,最好是实现ISerializable并处理任何版本问题。我不确定在您具有某种类型A的配置文件属性然后删除该类型的情况下会发生什么。我的猜测是你应该得到一个错误,但我并不喜欢它。
我通常喜欢汇总我自己的实现以支持用户个人资料功能,因为