【问题标题】:How to convert Raw XML to SOAP XML in C#?如何在 C# 中将原始 XML 转换为 SOAP XML?
【发布时间】:2010-07-15 14:23:32
【问题描述】:

我有一些从 XML Serializer 生成的 xml ..如何将其转换为 SOAP XML ?...我正在尝试使用 ASP.NET C#...请帮帮我

【问题讨论】:

  • 我认为您需要提供有关 Web 服务或预期 XML 格式的更多信息。

标签: c# xml soap


【解决方案1】:

您只需要创建一个可由 XMLSerializer 和 SOAPFormatter 序列化的数据类。这可能意味着您需要一个具有 XMLSerializer 的公共属性的公共类,并且您需要为 SOAPFormatter 添加 Serializable 属性。否则,它非常简单。

我创建了一个 Naive 示例来说明我的意思:

[Serializable]
public class MyData 
{
    public int MyNumber { get; set; }
    public string Name { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        using (MemoryStream stream = new MemoryStream())
        {
            MyData data = new MyData() { MyNumber = 11, Name = "StackOverflow" };

            XmlSerializer serializerXML = new XmlSerializer(data.GetType());
            serializerXML.Serialize(stream, data);

            stream.Seek(0, SeekOrigin.Begin);

            data = (MyData)serializerXML.Deserialize(stream);

            // We're cheating here, because I assume the SOAP data
            // will be larger than the previous stream. 
            stream.Seek(0, SeekOrigin.Begin);

            SoapFormatter serializerSoap = new SoapFormatter();
            serializerSoap.Serialize(stream, data);

            stream.Seek(0, SeekOrigin.Begin);

            data = (MyData)serializerSoap.Deserialize(stream);
        }
    }
}

【讨论】:

  • 我不能使用 SoapFormatter 似乎它已被弃用我猜..in .net 3.5/4.0
  • 我想您需要提供更多信息。您可能需要从他们那里获取服务规范(WSDL 等)。获得服务描述后,您可以使用 WCF 与 SOAP 服务进行互操作。
【解决方案2】:

没有“原始 XML”和“SOAP XML”之类的东西。

你想完成什么?如果您只是尝试将 XML 作为来自 Web 服务的响应返回,那么只需将其放入 XmlDocument 或 XDocument,然后返回根元素:

[WebMethod]
public XmlElement ReturnXml()
{
    XmlDocument doc = new XmlDocument();
    doc.Load(fromSomewhere);
    return doc.DocumentElement;
}

【讨论】:

  • hmm...我实际上想将一些数据发送到 url Web 服务...作为 xml...所以我想我应该使用 SOAP 标头或其他东西来封装它...所以我把它叫做“SOAP XML”
  • 网络服务说它想接收什么?是否有 WSDL 文件告诉您格式?有文档吗?
  • @VJ:这没有任何意义。他们必须告诉你他们想要什么样的 XML。
【解决方案3】:

听起来你想把你的 xml 包装成一个肥皂信封?如果是这样,请尝试this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多