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