【问题标题】:c# how to load incoming soap1.2 message into xml domc#如何将传入的soap1.2消息加载到xml dom中
【发布时间】:2017-05-31 13:35:42
【问题描述】:

我开发了我的第一个 WCF Web 服务,我需要将传入的 Soap 消息加载到 xml dom 中进行处理,但我不知道如何做到这一点。 我正在尝试:

namespace acdCM
{

    [ServiceContract]
    public interface IResNotif
    {
        [OperationContract]
        [XmlSerializerFormat]
        XmlDocument OTA_HotelResNotifRQ();
    }
}

namespace acdCM
{

    public class ResNotif : IResNotif
    {
        public XmlDocument OTA_HotelResNotifRQ()
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(System.Web.Services.Protocols.SoapMessage.ToString());

            .......
        }
    }
}

这根本不起作用,因为 SoapMessage 不能用作字符串。

我的问题是我不知道如何从传入的 SoapMessage 中创建一个字符串,以便我可以将它加载到 XmlDocument 中。

【问题讨论】:

  • 请阅读How to Ask并解释“根本不起作用”的确切含义。
  • 您正在消费/呼叫肥皂服务吗?或者您正在创建主机服务?在服务合同上,返回类型 XmlDocument 没有意义。
  • @CodeCaster - 嗨,感谢收看。我已经对我的帖子进行了一些编辑 - 我希望现在可以更清楚地解释我的困境。
  • @loopedcode - 你好 - 我正在构建一个主机服务,它从远程客户端接收 Soap1.2 消息,处理该输入并返回一个 Soap 响应。我实际上正在尝试转换/升级一个 asmx 服务,该服务已经做了几年的相同工作,并且返回一个 XmlDocument,所以这就是我在这里尝试它的原因。如果我的方法“没有意义”,如果您能解释原因并告诉我应该如何做,我将非常感激。谢谢。

标签: c# xml wcf


【解决方案1】:

所以,现在我可以回答我自己的问题了。

为了获取传入的soap消息,我使用了

String rq = System.ServiceModel.OperationContext.Current.RequestContext.RequestMessage.ToString();

然后像这样将它加载到 XmlDocument 中:

XmlDocument doc = new XmlDocument();

doc.LoadXml(rq);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多