我设计一个通用的解决方案从XML导入对象数据导入数据。在我的应用程序类的结构就像是以下几点:通用设计通过XML
class MyObject
{
public string ID { get; private set; }
// This may contain large set of values.
public Dictionary<string, OtherClass> ObjectData { get; set; };
public MyObject()
{}
}
class OtherClass
{
public string SubProperty1 { get; set; }
public string SubProperty2 { get; set; }
public string SubProperty3 { get; set; }
}
可以有许多其他类相似MyObject
其中可能有不同类型的需要进口的性能。
架构设计,我在我的脑海里已经会产生以下XML结构:
<BlobData DataType="MyObjectType">
<DataValues UniqueID="MyObjectID" Property="SerializedPropertyName">
<DataValue PointID="Point1" SubProperty="SubProperty1">Value1.1</DataValue>
<DataValue PointID="Point2" SubProperty="SubProperty1">Value1.2</DataValue>
<DataValue PointID="Point3" SubProperty="SubProperty1">Value1.3</DataValue>
<DataValue PointID="Point1" SubProperty="SubProperty2">Value2.1</DataValue>
<DataValue PointID="Point2" SubProperty="SubProperty2">Value2.2</DataValue>
<DataValue PointID="Point3" SubProperty="SubProperty2">Value2.3</DataValue>
</DataValues>
</BlobData>
我仍然感到困惑这种结构是否足以让可能出现的任何未来的工作。如果你有任何类似的设计经验,请提出建议。
感谢你的回应。并不是所有的类都有相同的结构在这个例子中,我使用字典通过使用Key来快速访问OtherClass。是的,他们是独一无二的,他们也会参加其他课程。实际上,每个班级都有责任解释数据的使用。例如,目前所有的属性都是必需的,因为MyObject类有字典。 PointIDs - > Keys和SubProperties - > OtherClass的属性。但有可能是一些类有简单的结构,其中值可以在没有任何属性直接指定 VAL –
AksharRoop
续..这意味着价值直接与SerializedPropertyName – AksharRoop
相关联。如果类是足够的不同,你最好创建特定类对于XML中可能遇到的每种可能的类型 – Attila