微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 如何将对象序列化为XML,而不获取xmlns =“…”?

有没有一种方法让我在.NET中序列化一个对象,而XML命名空间也不会自动序列化?看来认.NET认为XSI和XSD命名空间应该包括,但我不想要他们在那里。
啊…永远不会。总是在问题提出后的搜索产生答案。我正在序列化的对象是obj,已经被定义。将一个具有单个空命名空间的XMLSerializerNamespace添加到集合中。

在VB中这样:

Dim xs As New XmlSerializer(GetType(cEmploymentDetail))
Dim ns As New XmlSerializerNamespaces()
ns.Add("","")

Dim settings As New XmlWriterSettings()
settings.OmitXmlDeclaration = True

Using ms As New MemoryStream(),_
    sw As XmlWriter = XmlWriter.Create(ms,settings),_
    sr As New StreamReader(ms)
xs.Serialize(sw,obj,ns)
ms.Position = 0
Console.WriteLine(sr.ReadToEnd())
End Using

在C#中这样:

//Create our own namespaces for the output
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

//Add an empty namespace and empty value
ns.Add("","");

//Create the serializer
XmlSerializer slz = new XmlSerializer(someType);

//Serialize the object with our own namespaces (notice the overload)
slz.Serialize(myXmlTextWriter,someObject,ns);

原文地址:https://www.jb51.cc/xml/294069.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。