2010-09-28 26 views
5

Quiero serializar las clases de los contratos de datos en XMl, pero sin los espacios de nombres.Detener DataContractSerializer poniendo en espacio de nombres?

He añadido:

[DataContract(Namespace="")] 

pero aún así obtener:

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

¿Hay alguna manera de evitar que esto ocurra tan sólo quiero el xml limpia pase al interior de un componente heredado.

Respuesta

0

DataContractSerializer emite los espacios de nombres de esquema predeterminados de forma predeterminada. Intente utilizar XmlSerializer lugar, algo así como:

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

Ver más discusión here.

+4

La respuesta es útil, pero no si debe usar el DataContractSerializer para otras cosas, como cambiar el nombre de las propiedades a minúsculas. – mhanney

Cuestiones relacionadas