如何从xml字典序列化中正确删除xmln:xsi和xmlns:xsd

问题:我使用的是可序列化的字典类
http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx
,序列化字典。
它适用于下面的示例类。

 _ Public Class ccl  _ Public xx As String = ""  _ Public yy As String = "" ' _ '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 

删除这些属性。

但这也意味着如果我指定它们就不会写它们。 如何使用属性将这两个空命名空间添加到类中?

我改成了

  

但这似乎不起作用。

这是我用来序列化到我的对象的代码o

 XmlSerializerNamespaces XSN = new XmlSerializerNamespaces(); XSN.Add("", ""); XmlWriterSettings XWS = new XmlWriterSettings(); XWS.OmitXmlDeclaration = true; StringBuilder XmlStr = new StringBuilder(); XmlSerializer x = new XmlSerializer(o.GetType()); x.Serialize(XmlTextWriter.Create(XmlStr, XWS), o, XSN);