【发布时间】:2014-08-29 06:22:41
【问题描述】:
我有一个这样的 xml 字符串,我正在尝试将其反序列化为具有类 Credentials 的对象。但是命名空间前缀阻止了我。
Credentials 类本身没有任何 XmlRoot 属性来设置命名空间。但是某些包含 Credentials 属性的类可以。而下面的“ds”前缀来自容器的序列化xml。
容器的xml是这样的:
<ds:DataSource xmlns:ds="urn:My-Namespace">
<ds:Credentials>
<ds:UserName>foo</ds:UserName>
<ds:Domain>bar</ds:Domain>
</ds:Credentials>
</ds:DataSource>"
然后,当我从容器元素中获取元素“凭据”时,它会返回:
<ds:Credentials xmlns:ds="urn:My-Namespace">
<ds:UserName>foo</ds:UserName>
<ds:Domain>bar</ds:Domain>
</ds:Credentials>
由于额外的命名空间,我无法将其反序列化为正确的 Credentials 对象。这样可以去掉吗?我试过How to remove namespace prefix. (C#),该元素仍然有一个默认命名空间。
<Credentials xmlns="urn:My-Namespace">
<UserName>foo</UserName>
<Domain>bar</Domain>
</Credentials>
【问题讨论】:
标签: c# xml xml-serialization