Логирование запроса в XML
У меня существует консольное приложение, в котором импортировал службу из wsdl файла. Отправляю в эту службу запросы и получаю ответы. Но возник вопрос, как логировать в xml-запрос/ответ?
Пример файла логирования:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Process xmlns="http://tempuri.org/">
<User>12345</User>
<Value>100</Value>
<Code>Test</Code>
</Process>
</soap:Body>
</soap:Envelope>
Код программы:
ApiSender.cs
public ApiSender(string user, Logger logger)
{
this.logger = logger;
this.user = user;
}
public int Request(TestSoapClient soapClient, int data, string code)
{
try
{
var res = soapClient.ProcessAsync(
User: user,
Value: data,
Code: code).Result;
return res;
}
catch (Exception ex)
{
logger.Error(ex);
}
}
Programm.cs
static void Main(string[] args)
{
var client = new System.Net.NetworkCredential
{
UserName = config.User,
Password = config.Password
};
using var (soapClient = new TestSoapClient("SoapClient"))
{
soapClient.ClientCredentials.Windows.ClientCredential = client;
Thread req = new Thread(t => result = apiSender.Request(
soapClient: soapClient,
data: data,
code: code)));
req.Start();
// Ожидания ответа от сервера
while (true)
{
if (!req.IsAlive)
{
req.Join();
break;
}
}
Console.WriteLine(result);
}
}