2010-09-28 41 views
5

Desidero serializzare le classi datacontract in XMl, ma senza Namespace.Interrompi DataContractSerializer mettendo nello spazio dei nomi?

ho aggiunto:

[DataContract(Namespace="")] 

ma ho ancora ottenere:

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

Esiste un modo per fermare questo accada come voglio solo il xml pulito per passare in un componente legacy.

risposta

0

DataContractSerializer emette lo spazio dei nomi schema predefinito per impostazione predefinita. Provare a utilizzare XmlSerializer, invece, qualcosa di simile:

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

Tutte discussione here.

+4

La risposta è utile, ma non se è necessario utilizzare DataContractSerializer per altre cose, ad esempio la ridenominazione delle proprietà in minuscolo. – mhanney

Problemi correlati