WCF C#webservice接受XML Attribute中的文件

时间:2018-06-06 13:49:29

标签: c# .net wcf soap attachment

我正在尝试使用WCF接收SOAP post信号,该文件附加了文件并在XML属性中声明:

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

我应该如何在WCF中捕获此类请求?我尝试过使用XmlSerializerFormat并且能够制作相同的格式,但最终得到了

FormatException on the ':' character.

发件人不愿意进行任何更改。我试过搜索web extensivley,但我似乎无法在C#WCF中找到接受它的方法。

有谁知道如何使用WCF .NET框架接受这类消息?如果可能的话,我想接受这些而不设置另一个API。

感谢您的期待!

1 个答案:

答案 0 :(得分:0)

您可以尝试手动解析请求,它似乎是一个有效的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);
        }
    }
}