我設計一個通用的解決方案從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