XmlSerializerInputFormatter 已过时 - ASP.NET Core 2.1
XmlSerializerInputFormatter is obsolete - ASP.NET Core 2.1
我正在使用以下内容接受在我的核心 API 应用程序中序列化的 XML。
services.AddMvc(options =>
{
// allow xml format for input
options.InputFormatters.Add(new XmlSerializerInputFormatter());
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
更新到 ASP.NET Core 2.1 后,我收到以下警告:
'XmlSerializerInputFormatter.XmlSerializerInputFormatter()' is obsolete: 'This constructor is obsolete and will be removed in a future version.'
处理这个问题的新方法是什么?
根据 source code,有一个构造函数 not 被标记为 Obsolete
:
public XmlSerializerInputFormatter(MvcOptions options)
此构造函数采用 MvcOptions
的实例,因此您可以传递现有的 options
参数:
services.AddMvc(options =>
{
// allow xml format for input
options.InputFormatters.Add(new XmlSerializerInputFormatter(options));
}) ...
从 ASP.NET Core 3.0 开始,此构造函数是唯一可用的。那些标记为过时的现在已被删除。
对于 .NET Core 2.2 或更高版本,XmlSerializerInputFormatter 应标记为已弃用。
与我们之前所做的显式定义 XML 序列化程序不同,在 .NET Core 2.2 中,我们可以通过调用 AddXmlSerializerFormatters() 方法简单地添加它们,该方法现在将完成这项工作。阅读 here 它被弃用的原因
这是你可以做到的。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(config =>
{
config.RespectBrowserAcceptHeader = true;
config.ReturnHttpNotAcceptable = true;
config.OutputFormatters.Add(new CsvOutputFormatter());
}).AddXmlSerializerFormatters().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
我正在使用以下内容接受在我的核心 API 应用程序中序列化的 XML。
services.AddMvc(options =>
{
// allow xml format for input
options.InputFormatters.Add(new XmlSerializerInputFormatter());
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
更新到 ASP.NET Core 2.1 后,我收到以下警告:
'XmlSerializerInputFormatter.XmlSerializerInputFormatter()' is obsolete: 'This constructor is obsolete and will be removed in a future version.'
处理这个问题的新方法是什么?
根据 source code,有一个构造函数 not 被标记为 Obsolete
:
public XmlSerializerInputFormatter(MvcOptions options)
此构造函数采用 MvcOptions
的实例,因此您可以传递现有的 options
参数:
services.AddMvc(options =>
{
// allow xml format for input
options.InputFormatters.Add(new XmlSerializerInputFormatter(options));
}) ...
从 ASP.NET Core 3.0 开始,此构造函数是唯一可用的。那些标记为过时的现在已被删除。
对于 .NET Core 2.2 或更高版本,XmlSerializerInputFormatter 应标记为已弃用。
与我们之前所做的显式定义 XML 序列化程序不同,在 .NET Core 2.2 中,我们可以通过调用 AddXmlSerializerFormatters() 方法简单地添加它们,该方法现在将完成这项工作。阅读 here 它被弃用的原因
这是你可以做到的。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(config =>
{
config.RespectBrowserAcceptHeader = true;
config.ReturnHttpNotAcceptable = true;
config.OutputFormatters.Add(new CsvOutputFormatter());
}).AddXmlSerializerFormatters().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}