2012-12-13 8 views
7

Per favore aiutami a rimuovere lo spazio dei nomi xmlns dalla risposta dell'API WEB.Come rimuovere namespace da WEB API Response

Aggiunta,

config.Formatters.XmlFormatter.UseXmlSerializer = true; 

(o)

[DataContract(Namespace="")] 

non mi ha aiutato. Il tuo aiuto è molto apprezzato.

+0

Pubblica la tua soluzione come risposta. Non nella domanda. – arulmr

+0

Grazie arulmr. Per favore continua a modificare i miei post. Questo sarebbe molto utile. –

risposta

8

Infine, ho trovato la soluzione. Ho appena creato un CustomXmlFormatter per rimuovere lo spazio dei nomi dall'elemento root.

public class IgnoreNamespacesXmlMediaTypeFormatter : XmlMediaTypeFormatter 
{ 
public override Task WriteToStreamAsync(Type type, object value, Stream writeStream, HttpContent content, TransportContext transportContext) 
{ 
    try 
    { 
     var task = Task.Factory.StartNew(() => 
     { 
      var xns = new XmlSerializerNamespaces(); 
      var serializer = new XmlSerializer(type); 
      xns.Add(string.Empty, string.Empty); 
      serializer.Serialize(writeStream, value, xns); 
     }); 

     return task; 
    } 
    catch (Exception) 
    { 
     return base.WriteToStreamAsync(type, value, writeStream, content, transportContext); 
    } 
    } 
} 
Problemi correlati