Веб-сервис WCF C # для приема файла в атрибуте XML - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь получить сигнал SOAP post с WCF, к которому прикреплены файлы и объявлены в атрибуте XML следующим образом:

<ATTACHMENTS>
  <ATTACHMENT href="cid:338131408997"/>
</ATTACHMENTS>

Как мне выполнить захват такого рода запроса в WCF?Я попытался с XmlSerializerFormat и смог создать тот же формат, но в итоге получил

FormatException on the ':' character.

Отправитель не желает вносить какие-либо изменения.Я попытался выполнить поиск в веб-файле extensivley, но я не могу найти способ принять это в C # WCF.

Кто-нибудь знает, как принимать такие сообщения с помощью WCF .NET framework?Я хотел бы принять их без настройки другого API, если это возможно.

Спасибо за внимание!

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете попытаться проанализировать запрос вручную, похоже, это правильный XML.

[ServiceContract]
public interface IContract
{
    [OperationContract, WebInvoke(UriTemplate = "UploadAttachments")]
    void UploadAttachments(Stream messageContent);
}
public class Service : IContract
{
    public void UploadAttachments(Stream messageContent)
    {
        var xml = XElement.Load(messageContent);
        var hrefs = xml
            .Elements("ATTACHMENT")
            .Select(attachmentElement => attachmentElement.Attribute("href").Value);
        foreach (var href in hrefs)
        {
            Console.WriteLine(href);
        }
    }
}
...