我有一个动态加载的类型。从db中的xml字段读取变量部分。 E.g。
class SomeClass
{
public int Id {get; set;}
public string Name {get; set;}
public string Url {get; set;}
}
通过阅读
的xml部分来构建名称和url部分<element>
<name>Name</name>
<type>string</type>
</element>
<element>
<name>Url</name>
<type>string</type>
</element>
稍后将该类动态加载到:
class SomeClass
{
public int Id {get; set;}
public string Name {get; set;}
public string Url {get; set;}
public string FallbackUrl {get; set;}
}
来自
<element>
<name>Name</name>
<type>string</type>
</element>
<element>
<name>Url</name>
< type>string</type>
</element>
<element>
<name>FallbackUrl</name>
<type>string</type>
</element>
如何保持向后兼容性?这意味着如果我稍后在课堂上扩展,我怎么能保证在旧版本dbs上部署的较新版本(有时可能是这种情况)不会崩溃?
答案 0 :(得分:3)
阅读: http://www.xfront.com/Versioning.pdf
特别(摘要):
考虑两种XML模式更改案例:
案例1.新架构更改了某些元素的解释。例如,对先前模式有效且有意义的构造不会针对新架构进行验证。
案例2.新架构扩展了命名空间(例如,通过添加新元素),但不会使先前有效的文档无效。
识别新架构版本的一些选项是:
XML架构版本控制最佳实践
[1]在XML模式中的某处捕获模式版本。
[2]在实例文档中确定与实例兼容的架构的版本/版本。
[3]提供以前版本的XML模式。
[4]当仅扩展XML模式时(例如,新元素,属性,枚举列表的扩展等),应努力使现有实例文档无效
[5]新模式改变了某个元素的解释(例如,构造 对于以前的模式而言有效且有意义的不会对其进行验证 新架构),应该更改目标命名空间。