C# 如何使用WS-Address手动反序列化SOAP响应

C# 如何使用WS-Address手动反序列化SOAP响应,c#,soap,xml-deserialization,C#,Soap,Xml Deserialization,我需要将XML文档解析为当前脱机的Web服务的返回值。所以我想在等待它的可用性时创建一个立面。这是一个示例: <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <env:Header>

我需要将XML文档解析为当前脱机的Web服务的返回值。所以我想在等待它的可用性时创建一个立面。这是一个示例:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
   <env:Header>
      <wsa:MessageID>urn:AD90B9C079ED11E3BF6E3900E216CC13</wsa:MessageID>
      <wsa:ReplyTo>
         <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
         <wsa:ReferenceParameters>
            <instra:tracking.ecid xmlns:instra="http://xmlns.oracle.com/sca/tracking/1.0">cd42df45b193f389:55338234:143243fa919:-8000-0000000000432eda</instra:tracking.ecid>
         </wsa:ReferenceParameters>
      </wsa:ReplyTo>
      <wsa:FaultTo>
         <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
         <wsa:ReferenceParameters>
            <instra:tracking.ecid xmlns:instra="http://xmlns.oracle.com/sca/tracking/1.0">cd42df45b193f389:55338234:143243fa919:-8000-0000000000432eda</instra:tracking.ecid>
         </wsa:ReferenceParameters>
      </wsa:FaultTo>
   </env:Header>
   <env:Body>
      <db:BancosDbOutput xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/recuperaBancosDb">
         <db:recuperaBancosDbOutput>
            <db:nomeBanco>BANCO ABC BRASIL S.A.</db:nomeBanco>
            <db:numeroBanco>246</db:numeroBanco>
            <db:pais>Brasil</db:pais>
         </db:recuperaBancosDbOutput>
         <db:recuperaBancosDbOutput>
            <db:nomeBanco>BANCO A.J.RENNER S.A.</db:nomeBanco>
            <db:numeroBanco>654</db:numeroBanco>
            <db:pais>Brasil</db:pais>
         </db:recuperaBancosDbOutput>
      </db:BancosDbOutput>
   </env:Body>
</env:Envelope>

关于如何实现这一点,您是否有任何线索?

您是否引用了提供与
BancosDbOutput
关联的程序集?我得到了WSDL.exe生成的类;我没有访问webservice程序集本身的权限
private bool SOAPDeserialize<T>(string filePath, out T ClassObj)
{
    using(FileStream fs = new FileStream(filePath, FileMode.Open))
    {
        try
        {
            SoapFormatter soap = new SoapFormatter();
            soap.AssemblyFormat = FormatterAssemblyStyle.Simple;
            ClassObj = (T) soap.Deserialize(fs);
        }
        catch (SerializationException ex)
        {
            ClassObj = default(T);
            return false;
        }
    }
    return true;
}