Мне нужно вызвать конечную точку WCF с помощью HTTPClient, который я уже понял, как это сделать. У меня проблема в том, что я не знаю, как кодировать сериализатор XML для создания работающей строки содержимого.
В моем коде у меня есть следующий тип:
public class MyParameters
{
public string source { get; set; }
public string key { get; set; }
public string secret { get; set; }
public TimeSpan lockExpirationTime { get; set; }
}
И я сериализирую это так:
var input = new MyParameters
{
source = "some source",
key = "some key",
secret = "some secret",
lockExpirationTime = new TimeSpan(0, 0, 10)
};
var serializer = new XmlSerializer(typeof(MyParameters));
var stringwriter = new System.IO.StringWriter();
serializer.Serialize(stringwriter, input);
var xml = stringwriter.ToString();
Конечным результатом является строка xml:
<?xml version="1.0" encoding="utf-16"?>
<MyParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<source>some source</source>
<key>some key</key>
<secret>some secret</secret>
<lockExpirationTime>PT10S</lockExpirationTime>
</MyParameters>
Но кажется, что конечная точка WCF будет счастлива, а не вернуть результат неверного запроса, xml должен выглядеть ТОЛЬКО так:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<MyParameters xmlns="http://tempuri.org/">
<source>some source</source>
<key>some key</key>
<secret>some secret</secret>
<lockExpirationTime>PT10S</lockExpirationTime>
</MyParameters>
</s:Body>
</s:Envelope>
Как я могу заставить сериализатор дать мне этот результат? Я использую. Net Core 3.1
Спасибо.