Question : J'utilise une classe de dictionnaire sérialisable, trouvée à l'adresse
http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx
pour sérialiser un dictionnaire.
Cela fonctionne bien avec la classe d'exemple ci-dessous.
<System.Xml.Serialization.XmlRoot("ccl")> _
Public Class ccl
<System.Xml.Serialization.XmlElement("name")> _
Public xx As String = ""
<System.Xml.Serialization.XmlElement("date")> _
Public yy As String = ""
'<System.Xml.Serialization.XmlElement("adict")> _
'Public ww As New SerializableDictionary(Of String, String)
End Class
Mais il ajoute un fichu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance AND xmlns:xsd="http://www.w3.org/2001/XMLSchema ? à la balise
Maintenant, je l'ai corrigé en changeant la classe du dictionnaire en
Dim ns As System.Xml.Serialization.XmlSerializerNamespaces = New System.Xml.Serialization.XmlSerializerNamespaces()
'Add an empty namespace and empty value
ns.Add("", "")
If True Then
valueSerializer.Serialize(writer, value, ns)
Else
valueSerializer.Serialize(writer, value)
End If
qui supprime ces attributs.
Mais cela signifie également qu'il ne les écrit pas si je les spécifie. Comment puis-je ajouter ces deux espaces de noms vides à la classe en utilisant des attributs ?
Je l'ai changé en
<System.Xml.Serialization.XmlRoot("ccl", Namespace:="")> _
mais cela ne semble pas fonctionner.