Serializar XmlDocument y enviar a través de HTTPWebRequest
Estoy intentando descubrir cómo serializar correctamente mi XmlDocument y enviarlo a través de un objeto HTTPWebRequest.
Esto es lo que tengo hasta ahora:
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();
Algunas cosas de las que no estoy seguro. Tengo 2 XmlDocuments que necesito enviar en el mismo HTTPWebRequest. He intentado antes convertir los XmlDocuments en cadenas y simplemente concatenarlos (para enviar la cadena), pero cuando usé el StringBuilder / Writer agrega:
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://myNameSpace/">
Ya tengo la declaración en mis objetos XmlDocument, así que ahora está allí dos veces, y no puedo tener la<string...
parte en que hay ¿Es más fácil convertir los XmlDocuments en cadenas, concatenarlos y enviarlos o hay una manera fácil de enviar los XmlDocuments como están?
Editar:
VerC # XmlDocument Nodes Cuando intento convertir uno de mis XmlDocuments en una cadena, se muestra como
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://myNamespace/">
<TrackRequest>
<Request>
<TransactionReference>
<CustomerContext>whatever</CustomerContext>
</TransactionReference>
</Request>
<TrackingNumber>123</TrackingNumber>
</TrackRequest>
</string>
Quiero que mi raíz sea<TrackRequest>