代码如下所示:

StringBuilder builder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
using (XmlWriter xmlWriter = XmlWriter.Create(builder, settings))
{
    XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
    s.Serialize(xmlWriter, objectToSerialize);
}

生成的序列化文档包括名称空间,如下所示:

<message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" 
    xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" 
    xmlns="urn:something">
 ...
</message>

要删除xsi和xsd名称空间,我可以遵循从How to serialize an object to XML without getting xmlns=”…”?开始的答案.

我希望我的消息标记为<message>(没有任何名称空间属性).我怎么才能做到这一点呢?

推荐答案

...
XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("","");
s.Serialize(xmlWriter, objectToSerialize, ns);

.net相关问答推荐

API响应返回null错误. NET MAUI

在`MAUI`应用中使用Android`MediaPlayer`的`prepare`方法只在发布模式下和在物理设备上崩溃

标签从右向左增长

如何将浮点数向上舍入到 C# 中最近的 int?

将笔画应用于 WPF 中的文本块

指定的版本字符串不符合要求的格式 - major[.minor[.build[.revision]]]

我应该默认推荐密封类吗?

如何在 EF 代码优先中禁用链接表的级联删除?

生产代码中的 System.Diagnostics.Debug.WriteLine

File.ReadAllLines() 和 File.ReadAllText() 有什么区别?

如何使用 log4net 记录跟踪消息?

将跟踪输出重定向到控制台

为什么 Interlocked.Exchange 不支持布尔类型?

使用 C# 在 .NET 4.0 中 Task.Run 的替代方法是什么?

在未安装 Visual Studio 的机器上使用 FUSLOGVW.EXE

获取 .NET 程序集的 AssemblyInformationalVersion 值?

无法加载文件或程序集Antlr3.Runtime (1)或其依赖项之一

实体框架中的 POCO 是什么?

为什么 double.NaN 不等于自身?

如何获取当前的 ProcessID?