【发布时间】:2021-03-31 16:44:52
【问题描述】:
我已将 xml 序列化程序格式化程序添加到我的 Web api:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers()
.AddXmlSerializerFormatters()
.AddJsonOptions(o =>
{
o.JsonSerializerOptions.PropertyNamingPolicy = null;
o.JsonSerializerOptions.Converters.Add(new System.Text.Json.Serialization.JsonStringEnumConverter());
});
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = $"Test", Version = "v1" });
});
}
我的控制器如下所示:
[ApiController]
[Route("[controller]")]
public class Evaluate : ControllerBase
{
private readonly ILogger<Evaluate> _logger;
public Evaluate(ILogger<Evaluate> logger)
{
_logger = logger;
}
[HttpPost]
public ActionResult<MyResponse> Post(MyRequest request)
{
...
}
}
当我浏览到 swagger 页面时,我只获得 text/plain、application/json 和 text/json 作为请求/响应格式的选项。我尝试使用 [Serializeable] 和 [DataContract]/[DataMember] 属性装饰 MyResponse 和 MyRequest 类,但没有任何变化。
我如何大摇大摆地认识到我已经添加了 Xml 序列化程序?
【问题讨论】:
-
嗨@Jeremy,我只是在我的asp.net core 5项目中添加
.AddXmlSerializerFormatters(),swagger将包含text/xml,application/xml等请求/响应格式的选项。请尝试创建一个新项目并检查它是否有效。
标签: asp.net-core .net-core swagger swagger-ui