如何在C#中将Raw XML转换为SOAP XML?

时间:2010-07-15 14:23:33

标签: c# xml soap

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

3 个答案:

答案 0 :(得分:1)

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

我创建了一个天真的例子来说明我的意思:

[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);
        }
    }
}

答案 1 :(得分:1)

没有“原始XML”和“SOAP XML”这样的东西。

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

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

答案 2 :(得分:0)

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