Мне нужно сделать запрос XML. Мне интересно, как создать XML-запрос с узлом с атрибутами. Вот пример рабочего запроса, который я опробовал в Postman.Как построить строго типизированный запрос XML POST с атрибутами
<ItemDestination DestinationType="geocode" Longitude="0.1278" Latitude="51.5074" RadiusKm="100"/>
В запросе XML я должен сделать, то ItemDestination узел имеет несколько атрибутов, таких как «Lattitude» и «долгота». Вот класс, что инструмент XML2C# перевернул XML в:
[XmlRoot(ElementName = "ItemDestination")]
public class ItemDestination
{
[XmlAttribute(AttributeName = "DestinationType")]
public string DestinationType { get; set; }
[XmlAttribute(AttributeName = "Longitude")]
public string Longitude { get; set; }
[XmlAttribute(AttributeName = "Latitude")]
public string Latitude { get; set; }
[XmlAttribute(AttributeName = "RadiusKm")]
public string RadiusKm { get; set; }
}
теперь, когда я делаю вызов вместо узла, имеющий атрибуты, как я хочу, когда я открываю скрипач и проверить запрос, он выглядит это:
<ItemDestination>
<DestinationType>geocode</DestinationType>
<Longitude>2.64663399999995</Longitude>
<Latitude>39.57119</Latitude>
<RadiusKm>5</RadiusKm>
</ItemDestination>
Это не то, что я хочу. Итак, как мне изменить класс, чтобы включить вышеуказанный запрос в следующий запрос?
<ItemDestination DestinationType="geocode" Longitude="0.1278" Latitude="51.5074" RadiusKm="100"/>
Сериализация Код:
XmlSerializer serializer = new XmlSerializer(typeof(GTASearchRequest).ToString());
var xmlRequest = serializer.Serialize(request);
Класс правилен, если вы используете XmlSerializer для генерации XML. Я подозреваю, что вы используете что-то другое - возможно, DataContractSerializer? – MiMo
привет MiMo, я разместил код сериализации ... Я использую XMLSerializer –
Это не похоже на класс Microsoft XmlSerializer: https://msdn.microsoft.com/en-us/library/system.xml.serialization. xmlserializer (v = vs.110) .aspx (конструктор ожидает тип, а не строку, а Serialize имеет два параметра) – MiMo