You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 5中启用XML美化输出,是否有更简洁的实现方式?

XML响应格式化的简洁实现与AddXmlDataContractSerializerFormatters重载用法

更简洁的实现方式

有更紧凑的写法,你可以直接使用AddXmlDataContractSerializerFormatters的重载方法,在添加XML格式化器的同时完成缩进配置,无需额外调用Configure<MvcOptions>。代码示例:

services.AddControllers()
    .AddXmlDataContractSerializerFormatters(options =>
    {
        options.WriterSettings.Indent = true;
    });

能否在AddXmlDataContractSerializerFormatters()中直接设置Indent?

可以,上面的代码就是直接在该方法内设置Indent的方式,通过MvcXmlOptions参数直接访问WriterSettings,一步完成格式化器添加与缩进配置,比你之前的写法更简洁。

如何使用指定的重载方法?

这个重载方法接收一个Action<MvcXmlOptions>委托,MvcXmlOptions封装了XML序列化的相关配置项,除了缩进,你还可以调整其他XML输出规则:

services.AddControllers()
    .AddXmlDataContractSerializerFormatters(options =>
    {
        // 开启缩进
        options.WriterSettings.Indent = true;
        // 设置缩进字符为4个空格(默认是2个空格)
        options.WriterSettings.IndentChars = "    ";
        // 保留XML声明(<?xml version="1.0" encoding="utf-8"?>)
        options.WriterSettings.OmitXmlDeclaration = false;
        // 按需配置其他XML写入规则...
    });

这种方式把XML格式化器的添加和配置逻辑集中在一起,代码更易读维护,也省去了从MvcOptions中筛选输出格式化器的步骤。

内容的提问来源于stack exchange,提问作者broadband

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:32:09