Логирование запроса в 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);
   }
}


Ответы (0 шт):