c# - 删除命名空间标签(xmlns :) from XMLSerializer

标签 c# xml xml-serialization

我想在我的 C# 代码中生成以下 xml 输出:

<?xml version="1.0" encoding="utf-16"?>
<CallConnectReq Xmlns="urn:interno-com:ns:a9c" reqId="9" msgNb="2">
  <LocalCallId>0</LocalCallId>
</CallConnectReq>

现在我的实现方式如下:

var xnameSpace = new XmlSerializerNamespaces();
                xnameSpace.Add("Xmlns", Constants.XmlNameSpaceValue);
                var xmlSerializer = new XmlSerializer(objToSerialize.GetType());
                var stringWriter = new StringWriter();
                xmlSerializer.Serialize(stringWriter, objToSerialize, xnameSpace);
                return stringWriter.ToString().**Replace("xmlns:","");**

但我想删除“xmlns:”标签而不使用Replace()方法。 有什么办法可以做到吗?

最佳答案

添加默认命名空间:

var xnameSpace = new XmlSerializerNamespaces();
xnameSpace.Add("", "urn:interno-com:ns:a9c");
var ser = new XmlSerializer(typeof (CallConnectRequest));
ser.Serialize(destination, new CallConnectRequest(), xnameSpace);

与:

[XmlRoot("CallConnectReq", Namespace = "urn:interno-com:ns:a9c")]
public class CallConnectRequest {}

关于c# - 删除命名空间标签(xmlns :) from XMLSerializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8600658/

相关文章:

C# 架构验证返回 false 成功

php - 使用 Xpath 进行部分匹配

Android Eclipse > 图形布局 : How to Set Default Layout = Nexus 7 or Not 2 for every XML layout I open to look same in IDE and Device

C# XML 序列化 - 前导问号

java - 使用 XStream 序列化对象时添加属性

c# - 如何将 VerticalAlignment 设置为范围的底部?

c# - 从某个日期 Android DatePicker 的几个月后禁用所有日期

c# - 跨方法使用对象

c# - SAML 2.0 和 C# 向服务提供商 .NET 4.5 发出请求

java - 一个流中有多个 XML "files"