2010-09-28 21 views
5

Veri sözleşmesi sınıflarını XMl'ye, ancak Ad alanları olmadan serileştirmek istiyorum.DataContractSerializer'ı ad alanında mı bırakıyorsunuz?

Ben ekledik:

[DataContract(Namespace="")] 

ama hala alıyorum:

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

Sadece temiz xml Eski bileşen geçirmek istediğiniz kadar bu olay durdurmak için herhangi bir yolu var mı.

cevap

0

DataContractSerializer varsayılan şema ad alanlarını varsayılan olarak yayar.

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

daha tartışma here bakınız: yerine XmlSerializer'ı kullanmak gibi bir şey deneyin.

+4

Yanıt yararlıdır, ancak DataContractSerializer'ı, küçük harfe dönüştürmek gibi başka şeyler için kullanmanız gerekmiyorsa. – mhanney

İlgili konular