tengo que crear un archivo XML con todos los elementos prefijados, como esto:XmlSerializer Producir XML Con Sin namespace prefix
<ps:Request num="123" xmlns:ps="www.ladieda.com">
<ps:ClientId>5566</ps:ClientId>
<ps:Request>
Cuando i serializar mi objeto, C# es inteligente y tiene esto:
<Request num="123" xmlns="www.ladieda.com">
<ClientId>5566</ClientId>
<Request>
Eso es bueno, porque el ps: no es necesario.
¿Pero hay una forma de forzar a C# a serializar todos los prefijos?
Mi código de serialización es esto (por objeto entrante pObject):
String XmlizedString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(pObject.GetType());
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, pObject);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());
return XmlizedString;
private String UTF8ByteArrayToString(Byte[] characters)
{
UTF8Encoding encoding = new UTF8Encoding();
String constructedString = encoding.GetString(characters);
return (constructedString);
}
Por cierto, no es olvidar el espacio de nombres. Su espacio de nombre está correctamente serializado. Simplemente no usa un prefijo, lo cual tiene sentido, ya que no le dijiste un prefijo para usar. –