Pregunta: Utilizo una clase de diccionario serializable, que se encuentra en http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx , para serializar un diccionario. Lo que funciona bien, pero me encuentro con un problema molesto.Diccionario serializable, cómo configurar el nombre de la tecla?
<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
Cuando serializar instancias de la clase anterior, ya que esto, el xml creado se ve así:
<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>
que sería bueno si sólo pudiera encontrar la manera de cambiar el nombre de la clave de <cadena> a algo definido en un atributo
<key>
<string>MyTable</string>
</key>
Básicamente algo así como el XmlArrayItem atributo, como más abajo, si (sólo) el diccionario eran una serie ...
<System.Xml.Serialization.XmlArray("Tables")> _
<System.Xml.Serialization.XmlArrayItem("Table")> _
Public Tables As New List(Of cTable)
que quería probar a cambiar de cuerda a una clase personalizada heredada de la cadena, que podría dotar de un nombre, pero el problema es que uno no puede heredar de una cadena ...
En primer lugar, estoy limitado a .NET 2.0, y en segundo lugar, el problema principal es que el diccionario es un tipo genérico y no SERIALIZABLE (no en JSON tampoco). Estoy serializando en XML porque XML es más amplio y mejor de leer, si se serializa desde .NET 2.0. –