प्रश्न: मैं एक सीरियलज़ेबल डिक्शनरी क्लास का उपयोग करता हूं, जो http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx पर एक शब्दकोश को क्रमबद्ध करने के लिए मिलता है। जो ठीक काम करता है, लेकिन मैं एक परेशान समस्या में भाग जाता हूं।सीरियलज़ेबल डिक्शनरी, कुंजी नाम कैसे सेट करें?
<System.Xml.Serialization.XmlRoot("DataBase")> _
Public Class cDataBase
<System.Xml.Serialization.XmlNamespaceDeclarations()> _
Public ns As New System.Xml.Serialization.XmlSerializerNamespaces()
<System.Xml.Serialization.XmlElement("Tables")> _
Public Tables1 As New SerializableDictionary(Of String, cTable)
End Class ' cDataBase
जब मैं ऊपर वर्ग के उदाहरण को क्रमानुसार, इस के रूप में, बनाया एक्सएमएल इस तरह दिखता है:
<Tables>
<item>
<key>
<string>MyTable</string>
</key>
<value>
<Table CreationDate="0001-01-01T00:00:00" LastModified="0001-01-01T00:00:00">
<Columns>
<Column Name="PrimaryKeyName">
<DataType>Uniqueidentifier</DataType>
<Length>36</Length>
</Column>
</Columns>
<Rows>
<Row>
<Item>Reihe1</Item>
<Item>Reihe2</Item>
<Item>Reihe3</Item>
</Row>
<Row>
<Item>Reihe1</Item>
<Item>Reihe2</Item>
<Item>Reihe3</Item>
</Row>
कौन सा अच्छा होगा अगर केवल मैं यह पता लगाने सकता से कुंजी का नाम बदलने के लिए कैसे < स्ट्रिंग कुछ की तरह कुछ
<key>
<string>MyTable</string>
</key>
मूल रूप से एक विशेषता के रूप में परिभाषित करने के लिए > XmlArrayItem इस तरह के नीचे के रूप में विशेषता,, अगर (केवल) शब्दकोश एक सरणी थे ...
<System.Xml.Serialization.XmlArray("Tables")> _
<System.Xml.Serialization.XmlArrayItem("Table")> _
Public Tables As New List(Of cTable)
मैं जो मैं एक नाम के साथ लैस कर सकता है स्ट्रिंग से विरासत में मिली एक कस्टम वर्ग, के लिए तार का बदलने की कोशिश करना चाहता था, लेकिन समस्या यह है कि कोई स्ट्रिंग से उत्तराधिकारी नहीं हो सकता है ...
पहले, मैं .NET 2.0 तक ही सीमित कर रहा हूँ, और दूसरा, मुख्य समस्या यह है कि शब्दकोश एक सामान्य प्रकार और नहीं Serializable (JSON में नहीं या तो) है। मैं एक्सएमएल को क्रमबद्ध कर रहा हूं क्योंकि एक्सएमएल व्यापक रूप से उपयोग किया जाता है, और पढ़ने के लिए बेहतर है, अगर .NET 2.0 से क्रमबद्ध है। –