DotNetCore WebAPI: проблема с анализом XML с пространством имен от Почтальона - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть данные запроса, которые я получаю от какой-то третьей стороны, в формате XML.Я хочу передать эти данные в C # от почтальона.

Запрос XML выглядит следующим образом:

<n0:MassMatchQCResponseMsg xmlns:prx="urn:sap.com:proxy:TST:/1SAI/TASF64A312341D275609721:740" xmlns:n0="http://example.com/compxref/abctype">
    <MassMatchDet>
        <InputProductNumber>456141</InputProductNumber>        
    </MassMatchDet>    
</n0:MassMatchQCResponseMsg>

Здесь, если я удаляю псевдоним пространства имен n0 и отправляю XML, он работает нормально со следующимМетод C #.

[HttpPost]
public IActionResult Post([FromBody]MassMatchQCResponseMsg value)
{

}

, но с n0, он показывает статус 500: Внутренняя ошибка сервера и сбой.Может кто-нибудь подскажите, пожалуйста, как разобрать xml с пространством имен из Почтальона в C #.

1 Ответ

0 голосов
/ 06 декабря 2018

Похоже, у вас MassMatchQCResponseMsg не настроен Namespace.

[XmlRoot(Namespace="http://example.com/compxref/abctype")]
public class MassMatchQCResponseMsg{

    [XmlElement(Namespace="")]
    public MassMatchDet MassMatchDet {get;set;}
}

public class MassMatchDet
{
    public string InputProductNumber {get;set;}
}

Обратите внимание на XmlRoot.Namespace и XmlElement.Namespace

Я тестирую с помощью приведенного выше кода, он просто работает для меня.

...