XML 发送到网络时正文为 null/default API

XML Body is null/default when sending to a web API

在过去的 2 天里,我一直在用头撞墙。 对于我们的客户端,我们需要在 API(.NET Core 3.1 或 .NET 5)中创建一个接受 XML (SOAP) 消息的接口。我正处于消息终于进入的地步,但它们总是 incomplete/null/default 正如你在图片上看到的那样。

客户端发送的内容(例1):

我们API收到了什么:

如果我们收到包含多个列表的 XML,则列表为空(示例 2):

这是怎么回事?我错过了什么吗?

编辑:

如果我按字母顺序排列 XML,它会起作用:

是的,在我的 Startup 中我使用了 XmlSerializers:

如果我使用 .AddXmlSerializerFormatters() 我什至无法发送 XML.

我测试了你的代码,你可以检查我的步骤。

测试XML:

public class TestXML
{     
    public int  ID { get; set; }
    public string Name { get; set; }
    public List<TestXML_UoM_Item> TestXML_UoM_List { get; set; }
}

public class TestXML_UoM_Item
{
    public string Name { get; set; }
}

XML:

<TestXML> 
 <TestXML_UoM_List>
    <TestXML_UoM_Item>
      <Name>aa</Name>
    </TestXML_UoM_Item>
    <TestXML_UoM_Item>
      <Name>bb</Name>
    </TestXML_UoM_Item>
 </TestXML_UoM_List>
 <ID>3</ID>
 <Name>Gert</Name>
</TestXML>

StratUp:

services.AddControllersWithViews().AddXmlSerializerFormatters().AddXmlDataContractSerializerFormatters();

操作:

[HttpPost]
    public void PostMds([FromBody]TestXML request)
    {
        //do your logic..
    }

测试结果: