Безусловно, самый простой способ сделать это - использовать строку замены в шаблоне.Сохраните сообщение как ресурс в своем проекте (например, в Resources.resx или сохраните как файл и установите для действия сборки для встроенного ресурса).Шаблон выглядит следующим образом:
<SOAP:Header>
<SOAP-SEC:Security SOAP:mustUnderstand="1">
<wsse:SecuredKey ValueType="..." EncodingType="wsse:Base64Binary">
{ACCESS TOKEN}
</wsse:SecuredKey>
</SOAP-Sec:Security>
</SOAP:Header>
<SOAP:Body/>
</SOAP:Envelop>
Загрузите шаблон в виде строки из вашего ресурса, затем вызовите веб-службу для получения токена доступа, а затем выполните и замените {ACCESS TOKEN} на фактическийтокен доступаТеперь вы можете отправить мыльное сообщение, используя, например, System.Net.Http.HttpClient
или System.Net.WebClient
.
Пример использования WebClient
using (var client = new WebClient())
{
var result = client.UploadString("http://your.target/endpoint", yourXDocument.ToString(SaveOptions.DisableFormatting));
return XDocument.Parse(result);
}
SaveOptions.DisableFormatting
не пытается печатать XDocument
, что может быть важно при использовании подписанного XML-документа с WS-Security.Не уверен, что это применимо в вашем случае.