我正在重寫.net核心中的API,該核心必須能夠支持xml和json中的輸入。我已經在我的啓動類中添加了XmlSerializerFormatters。如何在.NET內核中將傳入的XML綁定到不同名稱的類
以前版本的API通過HTTP POST接收到名爲「XMLObject
」的模型的輸入,並且發佈到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根元素映射到不同的類名?
你有什麼試過,沒有工作? –
我認爲您需要用xml元素的名稱來裝飾CustomerSubmission類。我用自定義的json序列化/反序列化格式化程序做類似的事情。例如,你可以用傳入的json prop的名字來裝飾一個道具,所以我猜你可以用這個道具做一些事情。從來沒有用xml做過。 看看這篇文章:http://stackoverflow.com/questions/31490563/deserialize-xml-using-same-object-with-different-element-name – DarthJam
@MarkC。我已經確認映射對xml起作用了,如果類和xml元素被命名爲相同的,並且即使它們不同,它也適用於json。我試圖尋找一個屬性來裝飾類,但最初沒有把任何東西,因爲我正在尋找錯誤的命名空間... –