【问题标题】:How can I read a WCF message from a file?如何从文件中读取 WCF 消息?
【发布时间】:2018-09-18 16:18:00
【问题描述】:

我正在开发一个访问第三方 SOAP 服务的 WCF 客户端,但我在反序列化消息时遇到了问题。

我有原始消息的转储,但没有明显的方式来阅读它们。

如何使用 WCF 从文件中读取 SOAP 消息?

【问题讨论】:

    标签: c# .net wcf soap


    【解决方案1】:

    要从 WCF 中的流中读取消息,您需要 MessageEncoder。对于 SOAP 消息,您可以通过 TextMessageEncodingBindingElement 获取。

    以下代码对我有用:

    TextMessageEncodingBindingElement binding = new TextMessageEncodingBindingElement(
        MessageVersion.Soap11, Encoding.UTF8);
    MessageEncoderFactory factory = binding.CreateMessageEncoderFactory();
    MessageEncoder encoder = factory.CreateSessionEncoder();
    
    TypedMessageConverter tmc = TypedMessageConverter.Create(
        typeof(GetDataResponse), "getDataResponse");
    
    GetDataResponse response;
    
    using (FileStream fs = new FileStream(@"Response-20180918111722079.log",  FileMode.Open))
    {   
        Message msg = encoder.ReadMessage(fs, 4096);
        response = tmc.FromMessage(msg);
    }
    
    // Use your response here.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-12
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多