fy="Sample">4</Data>
</Value>
</Element>
<Element>
<Key Type="System.String" Assembly="mscorlib" Classify="Sample">5</Key>
<Value Assembly="RunnerTest" Type="RunnerTest.Common.TestModel" Classify="Custom">
<Name Type="System.String" Assembly="mscorlib" Classify="Sample">5</Name>
<DataType Type="System.String" Assembly="mscorlib" Classify="Sample">5</DataType>
<Data Type="System.String" Assembly="mscorlib" Classify="Sample">5</Data>
</Value>
</Element>
</Value>
</Element>
<Element>
<Key Type="System.String" Assembly="mscorlib" Classify="Sample">Other</Key>
<Value Type="dynamic" Classify="Dynamic">
<Element>
<Key Type="System.String" Assembly="mscorlib" Classify="Sample">Name</Key>
<Value Type="System.String" Assembly="mscorlib" Classify="Sample">Test1</Value>
</Element>
<Element>
<Key Type="System.String" Assembly="mscorlib" Classify="Sample">DataType</Key>
<Value Type="System.String" Assembly="mscorlib" Classify="Sample">Test1</Value>
</Element>
</Value>
</Element>
</Data>
说明
最大的用处,你拿到一个对象未知的对象,并不需要知道他的实际类型,就可以进行持久化,并且读取出来之后能够还原到原始类型。
实现这部分我觉得在于以下几个点
1. 对元数据的充分理解
2. 对xml结构的充分理解
3. 需要一点写算法的能力
我觉得代码本身并不复杂,只要耐心单步调试都能看懂。
当然这个是有一定限制的:
1. 可读性不强,所以在需要从文件进行修改配置比较麻烦
2.不可跨系统,文件中类型从程序集加载不到时就会出错
3.性能不高.性能敏感的部分不太适合
所以这部分功能需要结合业务场景使用,在我这里,包含作业调度系统,统计系统,接口测试工具中有使用.
这其实特别想WSDL的Soap协议,文件中既包含元数据的说明,又包含数据本身.真个元数据变成也是一个做设计时候一个重要思想。