C# 在WCF C中使用SOAP消息中的多部分MIME对象#

C# 在WCF C中使用SOAP消息中的多部分MIME对象#,c#,zip,mime,multipart,mtom,C#,Zip,Mime,Multipart,Mtom,在c#中,我一直很难实现这一点,而谷歌搜索也没有像我所希望的那样成功 问题是我正在作为流对象接收此MTOM信号。它有两个部分。XML和一个字节[],这是我需要保存到磁盘的ZIP文件。有人知道这样做的好方法吗 我尝试过MimeKit、MimeMessage、MimeEntity和其他一些不太知名的库,但没有机会用这些包解释我的流 以下是打印为字符串时的流: ----MIME_boundary Content-Type: application/xop+xml; charset=UTF-8; typ

在c#中,我一直很难实现这一点,而谷歌搜索也没有像我所希望的那样成功

问题是我正在作为流对象接收此MTOM信号。它有两个部分。XML和一个字节[],这是我需要保存到磁盘的ZIP文件。有人知道这样做的好方法吗

我尝试过MimeKit、MimeMessage、MimeEntity和其他一些不太知名的库,但没有机会用这些包解释我的流

以下是打印为字符串时的流:

----MIME_boundary
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: 8bit
Content-Id: <start.xml>

<?xml version='1.0' encoding='UTF-8' ?>
  <soap:Envelope
    xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xop = "http://www.w3.org/2004/08/xop/include"
  >
    <soap:Body>
      <COMPANYDOC>
        <COMPANYNET_INFO
          transactionId = "00486KZ"
        >
          <ATTACHMENTS>
            <ATTACHMENT>
              <xop:Include
                href = "cid:70049@COMPANY.com"
              />
            </ATTACHMENT>
          </ATTACHMENTS>
        </COMPANYNET_INFO>
      </COMPANYDOC>
    </soap:Body>
  </soap:Envelope>
----MIME_boundary
Content-Type: application/zip
Content-Transfer-Encoding: binary
Content-Disposition: attachment; filename="COMPANYDOC.ZIP"
Content-Id: <70049@COMPANY.com>

PK
给我StartIndex不能小于零

MimeKit.MimeEntity mime = MimeKit.MimeEntity.Load(HttpContext.Current.Request.InputStream);
它只是创建了一个内容类型为text/xml的新mimeEntity,并且没有拆分我的MIME头

这一个正是我需要的,但他的链接不工作了

所以我的问题是,我如何用C#解析这个多部分MTOM消息,并在一天结束时获得ZIP附件(这是我真正关心的)

任何帮助都将不胜感激


谢谢你的阅读

我也有同样的问题。我需要编写一个自定义编码器将MTOM附件写入磁盘,而不是将其存储在字节数组中。这种联系可能是巨大的
MimeKit.MimeEntity mime = MimeKit.MimeEntity.Load(HttpContext.Current.Request.InputStream);