Ich habe eine XML-Datei zu erstellen, mit allen Elementen voran, wie folgt aus:XmlSerializer Producing XML With No Namensraumpräfix
<ps:Request num="123" xmlns:ps="www.ladieda.com">
<ps:ClientId>5566</ps:ClientId>
<ps:Request>
Wenn ich mein Objekt serialisiert, C# intelligent ist und tut dies:
<Request num="123" xmlns="www.ladieda.com">
<ClientId>5566</ClientId>
<Request>
Das ist gut, denn das ps: ist nicht notwendig.
Aber gibt es eine Möglichkeit, C# zu zwingen, alle Präfixe zu serialisieren?
Mein serialize Code ist dies (für eingehendes Objekt 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);
}
BTW, ist es nicht Ihren Namensraum zu vergessen. Ihr Namespace ist korrekt serialisiert. Es verwendet einfach kein Präfix, was sinnvoll ist, da Sie ihm kein Präfix gegeben haben. –