2010-09-28 21 views
5

Tôi muốn tuần tự hóa các lớp datacontract thành XMl, nhưng không có Namespaces.Dừng DataContractSerializer đưa vào không gian tên?

Tôi đã thêm:

[DataContract(Namespace="")] 

nhưng tôi vẫn nhận được:

<Person xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
<Title>Mr</Title> 
... 
</Person> 

Có cách nào để ngăn chặn điều này xảy ra khi tôi chỉ muốn xml sạch để vượt qua thành một phần di sản.

Trả lời

0

DataContractSerializer phát ra các không gian tên lược đồ mặc định theo mặc định. Hãy thử sử dụng XmlSerializer thay thế, ví dụ như:

XmlSerializer serializer = new XmlSerializer(person.GetType()); 
XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 
ns.Add("",""); 
serializer.Serialize(xmlWriter, person, ns); 

Xem thêm thảo luận here.

+4

Câu trả lời là hữu ích, nhưng không phải nếu bạn phải sử dụng DataContractSerializer cho những thứ khác, chẳng hạn như đổi tên thuộc tính thành chữ thường. – mhanney

Các vấn đề liên quan