C# 如何配置.net核心api中使用的默认XmlSerializer
有人知道如何配置在.net core api项目的启动up类中使用IMVCBuilder时添加的XML序列化程序吗。特别是当您使用此选项时:C# 如何配置.net核心api中使用的默认XmlSerializer,c#,xml,asp.net-core,.net-core,C#,Xml,Asp.net Core,.net Core,有人知道如何配置在.net core api项目的启动up类中使用IMVCBuilder时添加的XML序列化程序吗。特别是当您使用此选项时: services.AddMvc() .AddJsonOptions(options => { options.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat; // UTC (ISO 860
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat; // UTC (ISO 8601) format for dates
options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
})
.AddXmlSerializerFormatters()
.AddXmlDataContractSerializerFormatters()
我尝试使用AddXmlOptions
扩展方法,但是MvcXmlOptions
类中没有属性(除了AllowRfc7807CompliantProblemDetailsFormat
)
我试图配置的特定设置是从根元素中省略xml声明。这里有很多答案可以解决这个问题,但都涉及到实例化一个新的XmlSerializer。当Accept标头设置为application/xml
时,我需要该设置来应用控制器使用的默认序列化程序。请尝试以下操作:
services.Configure<MvcXmlOptions>(options =>
{
//set options here
});
services.Configure(选项=>
{
//在此处设置选项
});
您可以使用以下内容访问输出格式化程序使用的:
services.Configure<MvcOptions>(options =>
{
var xmlWriterSettings = options.OutputFormatters
.OfType<XmlSerializerOutputFormatter>()
.Single()
.WriterSettings;
xmlWriterSettings.OmitXmlDeclaration = true;
});
services.Configure(选项=>
{
var xmlWriterSettings=options.OutputFormatters
第()类
.Single()
.WriterSettings;
xmlWriterSettings.OmitXmlDeclaration=true;
});
调用
AddXmlSerializerFormatters
可添加XmlSerializerOutputFormatter
的实例。上面的代码找到该特定实例并相应地修改其设置。不幸的是,这与AddXmlOptions扩展方法存在相同的问题,因为MvcXmlOptions类上没有属性。