为了账号安全,请及时绑定邮箱和手机立即绑定

XML序列化和名称空间前缀

XML序列化和名称空间前缀

C#
偶然的你 2019-08-28 10:00:29
XML序列化和名称空间前缀我正在寻找一种使用C#的方法,我可以将类序列化为XML并添加命名空间,但是定义该命名空间将使用的前缀。最终我正在尝试生成以下XML:<myNamespace:Node xmlns:myNamespace="...">   <childNode>something in here</childNode></myNamespace:Node>我知道有两个DataContractSerializer和XmlSerializer我可以添加一个命名空间,但他们似乎在内部生成一个前缀,与我不能够控制的东西。我能用这些序列化器控制它(我可以使用其中任何一个)吗?如果我无法控制名称空间的生成,我需要编写自己的XML序列化程序,如果是这样,那么编写它的最佳选择是什么?
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

当使用类型具有命名空间的模式生成的代码时,此命名空间覆盖应用于根级别,但不同类型的标记将具有与该类关联的命名空间。

我有机会需要使用两个不同的生成类,但根据我正在与之交谈的服务器具有不同的名称空间(不要求不在我的控制之下)。

我尝试了这里提供的所有覆盖,最后放弃并使用了一种实际上非常好的蛮力方法。我所做的是序列化为一个字符串。然后使用string.replace更改名称空间,然后使用字符串编写器从字符串中发布流。响应相同 - 捕获到字符串 - 操作命名空间,然后从字符串编写器反序列化字符串。

它可能不优雅或使用所有花哨的覆盖,但它完成了工作。


查看完整回答
反对 回复 2019-08-28
  • 2 回答
  • 0 关注
  • 644 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信