.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
相关产品推荐
相关产品推荐

