Вам нужно будет повторить c подход, используемый AddNewtonsoftJson
и AddXmlSerializerFormatters
, чтобы вы могли связать его после этих двух; это относительно просто:
services.AddControllers(options => {})
.AddNewtonsoftJson().AddXmlSerializerFormatters().AddExcelOutputFormatter();
// ...
public static IMvcBuilder AddExcelOutputFormatter(this IMvcBuilder builder)
{
builder.Services.TryAddEnumerable(
ServiceDescriptor.Transient<IConfigureOptions<MvcOptions>, ExcelOutputFormatterSetup>());
return builder;
}
class ExcelOutputFormatterSetup : IConfigureOptions<MvcOptions>
{
void IConfigureOptions<MvcOptions>.Configure(MvcOptions options)
{
options.OutputFormatters.Add(new ExcelOutputFormatter());
}
}
Это должно привести к правильной синхронизации, чтобы вы оказались в правильном положении в цепочке.
В качестве примечания: вы также можете добавить на options.FormatterMappings
.