Я хочу иметь возможность загружать сериализованный класс xml в Soap Envelope. Я начинаю, поэтому я не заполняю внутренности, поэтому это выглядит так:
<Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/" />
Я хочу, чтобы это выглядело как:
<Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/" ></Envelope>`
Класс, который я написал, таков:
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://schemas.xmlsoap.org/soap/envelope/",ElementName="Envelope", IsNullable = true)]
public class TestXmlEnvelope
{
[System.Xml.Serialization.XmlElement(ElementName="Body", Namespace="http://schemas.xmlsoap.org/soap/envelope/")]
public System.Collections.ArrayList Body = new System.Collections.ArrayList();
} //class TestXmlEnvelope`
Я использую это в качестве примера, поскольку другие люди могут захотеть это в отдельном элементе. Я уверен, что это должно быть просто, но, к сожалению, я не знаю подходящего ключевого слова для этого.
Как всегда, спасибо за вашу помощь.
[Редактировать] Ошибка возникает, когда я пытаюсь использовать эту инструкцию
System.Xml.Serialization.XmlSerializer xmlout = new System.Xml.Serialization.XmlSerializer(typeof(TestXmlEnvelope));
System.IO.MemoryStream memOut = new System.IO.MemoryStream();
xmlout.Serialize(memOut, envelope, namespc);
Microsoft.Web.Services.SoapEnvelope soapEnv = new Microsoft.Web.Services.SoapEnvelope();
soapEnv.Load(memOut);
Это дает мне ошибку "Корневой элемент не найден".
[Edit] Я исправил ошибку, проблема в том, что после сериализации объекта я не установил memOut.Position = 0. Тем не менее, я надеюсь, что этот вопрос поможет другим людям, которые могут захотеть сделать это.