我有一个有几名控制员的网络信息预报系统,其中一人由于遗留原因返回了XML,而其他所有的人都返回了JSON。
在“网络框架一”中,可以有选择地通过使用<代码>HttpControllerSettings.Formatters(通常用一种特性来分解控制器)。
Is it possible to do the same in ASP.NET Core, i.e. only enable Xml serialization for a single controller?
我发现的唯一途径是使协会的Xml序列化。 NET Core 2.1 isglobal, using:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddXmlSerializerFormatters();
这一工作是科索沃的,但我认为是不可取的副作用:在我管理视觉演播室一号应用时,见<密码>的警告痕迹。 XmlSerializerOutputFormatter 例如:
Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter:Warning: An error occurred while trying to create an XmlSerializer for the type MyApp.MyModel .
System.InvalidOperationException: There was an error reflecting type MyApp.MyModel . ---> System.InvalidOperationException: Cannot serialize member ... see inner exception for more details. ---> System.NotSupportedException: Cannot serialize ... because it is an interface.
--- End of inner exception stack trace ---
at System.Xml.Serialization.StructModel.CheckSupportedMember(TypeDesc typeDesc, MemberInfo member, Type type)
...
at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type)
at Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerOutputFormatter.CreateSerializer(Type type)
它似乎试图为我的“XML”控制器没有使用的类型建立一个<代码>XmlSerializer。
虽然这不是一个 shows子,但我更希望不要制造XmlSerializer,除非我需要。