Question: J'utilise une classe de dictionnaire sérialisable, trouvée à http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx , pour sérialiser un dictionnaire. Ce qui fonctionne bien, mais je rencontre un problème ennuyeux.Dictionnaire sérialisable, comment définir le nom de la clé?
<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
Quand je sérialiser instances de la classe ci-dessus, celle-ci, le xml créé ressemble à ceci:
<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>
Ce qui serait bien si je pouvais comprendre comment renommer la clé < chaîne > à quelque chose défini dans un attribut
<key>
<string>MyTable</string>
</key>
Fondamentalement, quelque chose comme le XmlArrayItem attribut, comme ci-dessous, si (seulement) le dictionnaire est un tableau ...
<System.Xml.Serialization.XmlArray("Tables")> _
<System.Xml.Serialization.XmlArrayItem("Table")> _
Public Tables As New List(Of cTable)
Je voulais essayer de changer de chaîne à une classe personnalisée héritée de la chaîne, que je pouvais équiper avec un nom, mais le problème est, on ne peut pas hériter de la chaîne ...
D'abord, je suis limité à .NET 2.0, et le second, le principal problème est que le dictionnaire est un type générique et non sérialisable (pas JSON non plus). Je suis en série au format XML parce que XML est plus large utilisé, et mieux à lire, si sérialisé à partir de .NET 2.0. –