Serializuj XmlDocument i wysyłaj przez HTTPWebRequest

Próbuję dowiedzieć się, jak poprawnie serializować mój XmlDocument i wysłać go przez obiekt HTTPWebRequest.

Oto, co mam do tej pory:

Stream requestStream;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://wwwcie.ups.com/ups.app/xml/Track");
request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
requestStream = request.GetRequestStream();

XmlSerializerNamespaces xsm = new XmlSerializerNamespaces();
xsm.Add("", ""); // remove namespace
XmlSerializer ser = new XmlSerializer(xmlRequest.GetType());
ser.Serialize(requestStream, xmlRequest);

requestStream.Write(postData, 0, postData.Length);
requestStream.Close();

Kilka rzeczy, o których nie jestem pewien. Mam 2 XmlDocuments muszę wysłać w tym samym HTTPWebRequest. Próbowałem wcześniej przekonwertować XmlDocuments na łańcuchy i po prostu je połączyć (aby wysłać ciąg), ale kiedy użyłem StringBuilder / Writer, dodaje:

  <?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://myNameSpace/">

Mam już deklarację w moich obiektach XmlDocument, więc teraz jest tam dwa razy i nie mogę mieć<string... brać w tym udział. Czy łatwiej jest przekonwertować XmlDocuments na ciągi znaków, a następnie połączyć je i wysłać, czy istnieje prosty sposób wysyłania dokumentów XmlDocuments?

Edytować:

WidziećWęzły C # XmlDocument Kiedy próbuję przekonwertować jeden z moich dokumentów XmlDocument na ciąg, który się wyświetla

  <?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://myNamespace/">
      <TrackRequest>
         <Request>
            <TransactionReference>
                <CustomerContext>whatever</CustomerContext>
            </TransactionReference>
         </Request>
         <TrackingNumber>123</TrackingNumber>
      </TrackRequest>
   </string> 

Chcę, żeby mój korzeń był<TrackRequest>

questionAnswers(3)

yourAnswerToTheQuestion