我正在重写.net核心中的API,它必须能够支持xml和json中的输入。我已经在我的启动类中添加了XmlSerializerFormatters。
以前版本的API通过HTTP POST接收到名为" XMLObject
&#34;的模型的输入,发布到API的XML具有根元素<XMLObject>
- Json发布到API当然不需要命名的根元素。
在我的新版API中,我真的不想调用我的模型XMLObject
- 出于我希望显而易见的原因 - 但仍希望支持使用<XMLObject>
的XML作为根元素。
所以我要找的是这样的课程:
public class CustomerSubmission
{
public string Id { get; set; }
[Required]
public string Submitter { get; set; }
[Required]
public string EncodedData { get; set; }
}
我的控制器中的方法是这样的:
[HttpPost( "submissionURL" )]
public async Task<IActionResult> PostSubmission( [FromBody] CustomerSubmission Incoming )
{
//do something with Incoming.ID, Incoming.Submitter, etc...
}
然而仍然允许客户像这样发布XML:
<XMLObject>
<Id>632174</Id>
<Submitter>Lorem Ipsum PLC</Submitter>
<EncodedData>7987428509348750983725.....</EncodedData>
</XMLObject>
我该怎么做?是否可以将xml根元素映射到不同的类名?
答案 0 :(得分:0)
我认为您需要使用xml元素的名称来装饰CustomerSubmission类。我使用自定义json序列化/反序列化格式化程序做类似的事情。例如,你可以使用传入的json prop的名称来装饰道具,所以我猜你可以用它做点什么。从来没有用xml做过。看一下这篇文章:
Deserialize Xml Using Same Object With Different Element Name