Вопрос:
Я использую сериализуемый класс словаря, найденный на
http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx
, для сериализации словаря.
Он отлично работает с примером класса ниже.
<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
Но это добавляет,
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance AND xmlns:xsd="http://www.w3.org/2001/XMLSchema?
к тегу
Теперь я исправил это, изменив класс словаря на
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
, который удаляет эти атрибуты.
Но это также означает, что он не пишет их, если я их укажу.
Как я могу добавить эти два пустых пространства имен в класс, используя атрибуты?
Я изменил его на
<System.Xml.Serialization.XmlRoot("ccl", Namespace:="")>
но это, похоже, не работает.