Как конвертировать Raw XML в SOAP XML в C #? - PullRequest
3 голосов
/ 15 июля 2010

У меня есть XML, сгенерированный из XML Serializer. Как я могу преобразовать его в SOAP XML? ... Я пытаюсь сделать это ASP.NET C # ..., пожалуйста, помогите мне

Ответы [ 3 ]

1 голос
/ 15 июля 2010

Не существует таких понятий, как «необработанный XML» и «SOAP XML».

Чего ты пытаешься достичь? Если вы просто пытаетесь вернуть XML в качестве ответа от веб-службы, просто поместите его в XmlDocument или XDocument и просто верните корневой элемент:

[WebMethod]
public XmlElement ReturnXml()
{
    XmlDocument doc = new XmlDocument();
    doc.Load(fromSomewhere);
    return doc.DocumentElement;
}
1 голос
/ 15 июля 2010

Вам просто нужно создать класс данных, который можно сериализовать как XMLSerializer, так и SOAPFormatter. Это, вероятно, означает, что вам понадобится открытый класс с общими свойствами для XMLSerializer и вам потребуется добавить атрибут Serializable для SOAPFormatter. В противном случае, это довольно просто.

Я создал наивный пример, чтобы проиллюстрировать, что я имею в виду:

[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);
        }
    }
}
0 голосов
/ 04 августа 2014

звучит так, будто ты хочешь завернуть свой xml в мыльный конверт?если это так, попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...