XmlSerializer Сериализует пустую переменную, чтобы использовать оба тега?

Я хочу иметь возможность загружать сериализованный класс 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`

Я использую это как пример, так как другие люди могут хотеть это в отдельном элементе. Я уверен, что это должно быть просто, но, к сожалению, я не знаю подходящего ключевого слова для этого.

Как всегда, спасибо за вашу помощь.

[Edit] Ошибка возникает, когда я пытаюсь использовать эту инструкцию

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

Это дает мне ошибку "Корневой элемент не найден".

[Править] Я исправил ошибку, проблема в том, что после сериализации объекта я не установил memOut.Position = 0. Тем не менее, я надеюсь, что этот вопрос поможет другим людям, которые могут захотеть сделать это.