tôi phải tạo một tập tin XML với tất cả các yếu tố tiền tố, như thế này:XmlSerializer Sản xuất XML Với Không namespace prefix
<ps:Request num="123" xmlns:ps="www.ladieda.com">
<ps:ClientId>5566</ps:ClientId>
<ps:Request>
Khi tôi serialize đối tượng của tôi, C# là thông minh và thực hiện điều này:
<Request num="123" xmlns="www.ladieda.com">
<ClientId>5566</ClientId>
<Request>
Điều đó là tốt, bởi vì ps: không cần thiết.
Nhưng có cách nào để buộc C# tuần tự hóa tất cả các tiền tố không?
đang sắp đặt của tôi là thế này (đối với đối tượng đến 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, nó không quên namespace của bạn. Không gian tên của bạn được tuần tự một cách chính xác. Nó chỉ đơn giản là không sử dụng một tiền tố, mà làm cho tinh thần, kể từ khi bạn không nói với nó một tiền tố để sử dụng. –